Заказать
Все кейсы
Кейс 01 / 08CRITICAL · CVSS 9.8
Телеком · портал управления SIM-картами

Полный контроль над сервером за 68 минут

Портал не обновляли три года. Устаревшие части сложились в цепочку до самого сервера.

Заказчик: · NDA

  • Доступиз интернета, без пароля
  • Простой0 минут
  • Итогплатформу пересобрали
68 минот начала работ до полного контроля над сервером
Узел кластера
Время от начала работУзел защищён
00:00
Портал работал без простоя весь аудит
Портал обслуживает клиентовработает
Команда выполнена в контейнере00:13
Полный доступ к серверу01:08
После обновления этот путь закрыт
01

О продукте

Рабочий портал управления M2M-SIM-картами на Laravel и PHP, с базой PostgreSQL. Приложение работало в контейнере Kubernetes. Аудит проходил во время обслуживания клиентов, с условием нулевого простоя.

02

Где была ошибка

Страница отладки раскрывала переменные окружения, включая ключ приложения. В Laravel 5.4 этот ключ открывал путь к опасной десериализации CSRF-токена. Известная уязвимость CVE-2018-15133 давала выполнение команд внутри контейнера без входа в аккаунт.

Контейнер не остановил дальнейшую атаку: старое ядро было уязвимо к CVE-2024-1086 в nf_tables. Настройки изоляции допускали выход на узел с правами root. Внешний сетевой фильтр также не закрывал доступ из подовой сети к SSH узла.

03

Чем это грозило

  • Контроль над всеми контейнерами сервера
  • Доступ к данным и трафику сервисов
  • Путь дальше во внутреннюю сеть
04

Как доказали

Через 13 минут получили вывод команды id от пользователя nginx внутри контейнера. Через 68 минут подтвердили выполнение кода от root на узле. Для обоих этапов использовали уже известные уязвимости.

Демонстрацию ограничили подтверждением доступа. Портал обслуживал клиентов весь аудит; простоя и ущерба не было.

05

Как исправили

Фреймворк 2017 года, ядро без обновлений, отладка включена

  • Laravel 5.4 допускал выполнение команд через десериализацию
  • Старое ядро допускало выход из контейнера на узел
  • Страница отладки раскрывала ключ приложения
  • Внешний фильтр не ограничивал трафик из подов к узлу

Актуальные версии, система и кластер пересобраны

  • Портал перевели на Laravel 13 и PHP 8.5; уязвимый путь удалён
  • Систему и кластер пересобрали, ядро обновили
  • Отладку на боевой среде выключили, ключ приложения сменили
  • Трафик подов ограничили, изоляцию контейнеров усилили
Урок

Возраст системы — это риск с датой. Пропущенное обновление рано или поздно встречает публичный эксплойт.

Исправлено
Заявка

Проверим ваш продукт до того, как это сделает кто-то другой

Опишите продукт в двух словах. Ответим в течение рабочего дня и предложим формат: чёрный или белый ящик.

  • Договор и NDA до начала работ
  • Отчёт для бизнеса и для разработчиков
  • Повторная проверка после исправления