Критическая уязвимость в PHP-библиотеке PhpSpreadsheet допускает удалённое выполнение кода и SSRF-атаки

vulnerability

Специалисты по кибербезопасности зафиксировали критическую уязвимость в PHP-библиотеке PhpSpreadsheet, предназначенной для работы с электронными таблицами. Проблеме присвоен идентификатор BDU:2026-08159 и CVE-2026-34084, а её базовый рейтинг по шкале CVSS 3.1 составил 9,8 балла из десяти. Уязвимость затрагивает все поддерживаемые ветки библиотеки, начиная с версии 2.0.0 и вплоть до 5.5.0 включительно, а также более старые выпуски до 1.30.2. Разработчики уже выпустили исправление, однако наличие публичного эксплойта делает ситуацию особенно опасной для систем, где обновление ещё не установлено.

Детали уязвимости

Корень проблемы кроется в двух взаимосвязанных ошибках, классифицированных как CWE-502 (восстановление в памяти недостоверных данных) и CWE-918 (серверная фальсификация запросов - SSRF). В частности, уязвимыми оказались функции File::prohibitWrappers() и IOFactory::load(). При обработке параметра filename библиотека некорректно проверяет переданные данные, что позволяет злоумышленнику манипулировать механизмом десериализации. В результате удалённый нарушитель, не имеющий аутентификации, может инициировать подделку запросов на стороне сервера или добиться выполнения произвольного PHP-кода.

Технически эксплуатация строится на обходе механизма, который должен блокировать использование опасных обёрток (wrappers), таких как phar://. Злоумышленник передаёт специально сформированный filename, при загрузке которого PhpSpreadsheet запускает десериализацию. Если в качестве источника используется Phar-архив, это позволяет внедрить полезную нагрузку. Такая техника известна как Phar-десериализация и активно применяется в атаках на PHP-приложения.

Последствия успешной эксплуатации варьируются в зависимости от контекста. В первую очередь под ударом оказываются веб-приложения, которые используют PhpSpreadsheet для загрузки или обработки пользовательских файлов - например, импорта таблиц из Excel или OpenDocument. Получив контроль над сервером, атакующий может похитить данные, изменить конфигурацию, внедрить бэкдор или использовать уязвимый хост как точку входа во внутреннюю инфраструктуру. SSRF-составляющая позволяет сканировать порты, обращаться к закрытым ресурсам внутри периметра и атаковать облачные метаданные.

Вендор - сообщество свободного программного обеспечения, разрабатывающее PhpSpreadsheet под эгидой проекта PHPOffice, - подтвердил наличие уязвимости. В официальном бюллетене (GHSA-q4q6-r8wh-5cgh) перечислены все затронутые версии и приведены рекомендации по обновлению. Согласно данному документу, уязвимость устранена в выпусках 1.30.3, 2.1.15, 2.4.4, 3.10.4 и 5.5.1. Пользователям более старых веток настоятельно рекомендуется перейти на одну из указанных версий.

Стоит отметить, что способ эксплуатации уже опубликован в открытом доступе. Это существенно повышает вероятность массовых сканирований и попыток компрометации в краткосрочной перспективе. Администраторам и разработчикам следует немедленно проверить версии PhpSpreadsheet в своих проектах и применить патчи. Если немедленное обновление невозможно, в качестве временной меры можно ограничить возможность загрузки файлов с пользовательским filename или использовать дополнительные проверки перед передачей данных в библиотеку, однако такой подход не даёт полной гарантии защиты.

Ситуация напоминает о системной проблеме десериализации в PHP-экосистеме. Даже когда разработчики добавляют блокирующие функции (как File::prohibitWrappers()), обходные пути могут оставаться незамеченными долгое время. Данный случай показывает, насколько критично регулярно обновлять зависимости и следить за бюллетенями безопасности.

На момент написания новости статус уязвимости значится как "подтверждена производителем", а способ устранения - обновление программного обеспечения. Для затронутых версий, начиная от 2.0.0 и заканчивая 5.5.0, а также для веток 1.x, выпущены соответствующие корректирующие релизы. Эксплуатация не требует привилегий, сложность атаки низкая, а единственным необходимым условием является наличие доступа к сетевому интерфейсу уязвимого приложения. Следовательно, все организации, использующие PhpSpreadsheet в своих продуктах или инфраструктуре, попадают в группу риска.

В контексте общей картины угроз подобные ошибки традиционно становятся мишенью для создателей программ-вымогателей и групп APT. Высокая оценка CVSS и наличие готового эксплойта делают эту уязвимость одним из приоритетных направлений для немедленного исправления. Откладывать обновление не стоит: каждый день промедления увеличивает вероятность компрометации.

Ссылки

Комментарии: 0