Почему уязвимости PHP2Shell и Pterodactyl нам не угрожают
Разбор критических уязвимостей PHP2Shell и проблем безопасности экосистемы Pterodactyl. Рассказываем, почему собственная архитектура Obsy Host на TypeScript и Bun защищена от этих векторов атак.
21 октября 2026 года стало известно о двух критических уязвимостях в PHP с оценкой CVSS 9.2 (получивших широкую огласку как PHP2Shell). Бреши позволяют удаленно выполнять произвольный код (RCE) на уязвимом сервере без какой-либо авторизации.
Для игровой индустрии это серьезный сигнал: подавляющее большинство игровых хостингов до сих пор используют популярную панель управления Pterodactyl или ее форки, архитектура которых исторически завязана на стек PHP и Laravel.
На фоне этих событий хотим подробно рассказать, почему Obsy Host изначально отказался от Pterodactyl в пользу собственной платформы и почему подобные уязвимости не затрагивают наших пользователей.
Что произошло: уязвимости PHP2Shell#
Обнаруженные уязвимости затрагивают базовые механизмы обработки входящих запросов в рантайме PHP. При определенных конфигурациях окружения атакующий может сформировать вредоносный HTTP-пакет и добиться выполнения произвольного системного кода с правами веб-сервера.
Оценка 9.2 по шкале CVSS относит проблему к категории критических:
- Эксплуатация возможна без предварительной аутентификации.
- Доступ к атакуемой системе может быть получен дистанционно по сети.
- Вектор атаки затрагивает серверные панели, биллинги и сопутствующие сервисы, функционирующие на базе уязвимых версий PHP.
Архитектурные риски Pterodactyl и Wings#
Pterodactyl Panel написана на PHP и построена на фреймворке Laravel. Ее фоновый агент управления контейнерами на серверах — Wings — написан на Go.
Так как кодовая база Pterodactyl огромна и разрабатывается годами в открытом сообществе, в самой панели и демоне Wings регулярно обнаруживаются опасные векторы атак:
- :black_small_square: 19.06.2025 | CVE-2025-49132 — выполнение произвольного кода без авторизации.
- :black_small_square: 14.02.2026 | CVE-2026-26016 — нарушение изоляции доступа и сегментации между нодами.
- :black_small_square: 06.06.2026 | CVE-2026-54593 — обход ограничений прав при загрузке файлов.
- :black_small_square: 14.08.2026 | GHSA-77pg-7gfq-9hjr — потенциальный несанкционированный доступ к файлам хостовой системы через демон Wings.
Когда хостинг базируется на стороннем монолитном решении, его безопасность целиком зависит от скорости выпуска чужих патчей и архитектурных ограничений чужого фреймворка.
┌─────────────────────────────────────────────────────────────┐
│ Уязвимая цепочка типового хостинга │
├─────────────────────────────────────────────────────────────┤
│ [PHP Runtime] ──► [Laravel Web Panel] ──► [Wings Daemon] │
│ ▲ ▲ ▲ │
│ PHP2Shell (RCE) CVE-2025-49132 GHSA-77pg-7gfq │
└─────────────────────────────────────────────────────────────┘Почему мы выбрали собственную архитектуру#
При создании Obsy Host мы приняли принципиальное решение: не разворачивать типовой Pterodactyl, а спроектировать платформу с нуля под современные требования к надежности и изоляции.
Главные причины такого выбора:
- Полный контроль над кодовой базой: Мы досконально знаем каждый обработчик, протокол и пайплайн передачи данных внутри системы.
- Строгая изоляция вычислительных нод: Управление игровыми серверами осуществляется через легковесный агент, который взаимодействует с центральным бэкендом через защищенную шину очередей сообщений NATS JetStream с взаимной авторизацией.
- Безопасная работа с файловой системой: Обработка пользовательских файлов изолирована. Защита от Path Traversal, обхода символических ссылок и SSRF-атак встроена прямо в ядро контроллера нод и покрыта автоматизированными тестами.
- Отсутствие чужого легаси-кода: Нам не приходится поддерживать неиспользуемые модули, чужие абстракции и устаревшие зависимости.
Почему уязвимости PHP2Shell нам не угрожают#
Ответ прост: в инфраструктуре Obsy Host нет PHP.
┌─────────────────────────────────────────────────────────────┐
│ Архитектурный стек Obsy Host │
├─────────────────────────────────────────────────────────────┤
│ [Клиент / React 19] ──► [ElysiaJS / Bun] ──► [NATS Queue] │
│ │ │
│ ▼ │
│ [Node Controller]│
│ (Docker Sandbox) │
└─────────────────────────────────────────────────────────────┘- Современный стек: Бэкенд и микросервисы Obsy Host работают на TypeScript под управлением высокопроизводительного рантайма Bun и веб-фреймворка ElysiaJS.
- Независимость от Pterodactyl: Мы не используем Pterodactyl Panel или Wings ни в качестве основы панели, ни в виде вспомогательных демонов.
- Неприменимость эксплойтов: Уязвимости, специфичные для интерпретатора PHP, сериализации Laravel или демона Wings, технически не могут быть применены против наших серверов — атакуемый стек у нас просто отсутствует.
Безопасность — это непрерывный процесс#
Собственная разработка не делает инфраструктуру автоматически неуязвимой. Надежность платформы достигается не отсутствием стороннего ПО, а регулярной и системной работой над безопасностью каждого компонента.
Для защиты серверов и данных наших пользователей мы придерживаемся строгих стандартов разработки:
- Строгая типизация и валидация: Любой входящий запрос на всех микросервисах валидируется строгими схемами Zod и DTO до передачи в бизнес-логику.
- Глубокая изоляция контейнеров: Каждый игровой сервер изолирован на уровне ядра Linux и Docker-контейнера с индивидуальными лимитами памяти, CPU и дискового пространства.
- Защита от сбоев (CrashLoopGuard): Автоматический мониторинг предотвращает зацикливание аварийных перезапусков и спам системными ресурсами.
- Регулярный аудит и тесты: Все механизмы работы с файлами, сетью и правами доступа непрерывно проверяются модульными и интеграционными тестами.
Первоисточники и бюллетени безопасности#
Для тех, кто хочет подробнее изучить технические детали упомянутых уязвимостей: