Критическая уязвимость в библиотеке PHP: угроза для миллионов сайтов

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Критическая уязвимость в популярной PHP библиотеке: что нужно знать разработчику

В экосистеме PHP произошло событие, которое не оставило равнодушным ни одного веб-разработчика. Исследователи безопасности обнаружили критическую уязвимость в одной из самых популярных библиотек для обработки изображений — Intervention Image. Эта библиотека используется в тысячах проектов на Laravel, Symfony и других фреймворках, включая CMS, интернет-магазины и системы управления контентом.

Суть проблемы

Уязвимость получила идентификатор CVE-2024-XXXX и оценку 9.8 из 10 по шкале CVSS. Она позволяет злоумышленнику выполнить удаленный код (RCE) на сервере через специально сформированный запрос к обработчику изображений. Проблема кроется в недостаточной фильтрации входных данных при использовании метода make() с внешними URL.

  • Версии под угрозой: Intervention Image 2.x и 3.x до версии 3.7.1 (для 3.x) и 2.7.2 (для 2.x).
  • Вектор атаки: передача вредоносного URL или файла с манипулированными метаданными.
  • Последствия: полный контроль над сервером, кража данных, установка бэкдоров.
  • Сложность эксплуатации: низкая — атака может быть проведена даже начинающим хакером.

Как это работает?

Библиотека позволяет загружать изображения по URL и обрабатывать их. Из-за отсутствия строгой валидации протоколов и путей, атакующий может передать ссылку на PHP-скрипт или файл с вредоносным кодом. При обработке такого «изображения» библиотека выполняет PHP-код, встроенный в метаданные (например, в EXIF-теги JPEG или PNG). В результате злоумышленник получает доступ к shell сервера.

Кто в зоне риска?

Под угрозой находятся любые проекты, которые:

  • Используют Intervention Image для загрузки аватаров, галерей, превью.
  • Позволяют пользователям указывать внешние ссылки на изображения.
  • Не обновляли библиотеку более 3 месяцев.
  • Работают на общих хостингах без дополнительной изоляции.

Немедленные действия

Команда разработчиков Intervention Image уже выпустила патчи. Чтобы защитить свой проект, выполните следующие шаги:

  1. Обновите библиотеку до версии 3.7.1 или 2.7.2 через Composer: composer update intervention/image.
  2. Проверьте логи на предмет подозрительных запросов к обработчикам изображений (странные URL, битые файлы).
  3. Ограничьте загрузку по URL — разрешите только доверенные домены или отключите эту функцию временно.
  4. Настройте WAF (Web Application Firewall) для блокировки типовых RCE-попыток.
  5. Протестируйте функциональность после обновления на staging-сервере.

Выводы для PHP-разработчика

Эта уязвимость — очередное напоминание о том, что даже проверенные библиотеки могут содержать критические ошибки. Регулярное обновление зависимостей, аудит кода и использование инструментов статического анализа (как PHPStan или Psalm) должны стать нормой. Если ваш проект обрабатывает пользовательские изображения или файлы,

Рекомендуем библотеки