Критическая уязвимость в PhpSpreadsheet: SSRF-атаки через инъекции HTML

vulnerability

В популярной библиотеке PhpSpreadsheet обнаружена критическая уязвимость типа Server-Side Request Forgery (SSRF), позволяющая злоумышленникам внедрять malicious HTML input при обработке электронных таблиц. Уязвимость, получившая идентификатор CVE-2025-54370, затрагивает несколько версий пакета phpoffice/phpspreadsheet и имеет высокий уровень серьезности с оценкой 7.5 по шкале CVSS v3.1 и 8.7 по CVSS v4.0.

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

Проблема была обнаружена исследователем Алексеем Соловьевым из Positive Technologies в классе PhpOffice\PhpSpreadsheet\Worksheet\Drawing, конкретно в методе setPath. Уязвимость относится к категории CWE-918: Server-Side Request Forgery и возникает при чтении и отображении обработанного HTML-документа в браузере. Это позволяет злоумышленникам использовать возможности библиотеки по обработке HTML в malicious целях.

Механизм эксплуатации уязвимости основан на передаче контролируемых злоумышленником строк в HTML-ридер. Attackers могут создавать специально сконструированное HTML-содержимое, содержащее image tags с malicious src attributes, указывающими на внутренние сетевые ресурсы. При обработке таких файлов библиотека пытается получить ресурсы по указанным URL, что может привести к раскрытию информации о внутренней сетевой инфраструктуре.

Исследователь продемонстрировал работу уязвимости на примере версии 3.8.0 библиотеки, используя простой HTML-файл, содержащий image tag с ссылкой на локальный адрес. При обработке через HTML-ридер и последующем рендеринге такой payload инициирует запросы к указанному внутреннему адресу, подтверждая наличие SSRF-уязвимости.

Эксплуатация данной vulnerability позволяет злоумышленникам получать доступ к внутренним сетевым ресурсам, обходить сетевые security controls, собирать информацию о внутренней инфраструктуре и потенциально эскалировать атаки на внутренние системы. Особую опасность уязвимость представляет для организаций, обрабатывающих пользовательский HTML-контент или файлы электронных таблиц, содержащие HTML-элементы.

Для mitigation рекомендуется немедленное обновление до патченных версий библиотеки. Разработчикам следует уделить особое внимание валидации входных данных и безопасной обработке пользовательского контента в библиотеках для работы с электронными таблицами. Дополнительной мерой безопасности может стать реализация allowlist-based URL filtering для image resources.

Обнаружение данной уязвимости подчеркивает важность регулярного аудита безопасности в open-source библиотеках, особенно тех, которые активно используются в enterprise-средах для обработки документов. Разработчикам следует учитывать, что даже косвенные функции, такие как обработка HTML-контента в spreadsheet-библиотеках, могут стать вектором для серьезных атак.

PhpSpreadsheet является одной из наиболее популярных PHP-библиотек для работы с файлами форматов Excel, ODS и других табличных форматов. Ее широкое распространение в веб-приложениях означает, что уязвимость может затрагивать значительное количество систем по всему миру. Организациям рекомендуется провести инвентаризацию используемых версий библиотеки и принять незамедлительные меры по обновлению.

Инцидент также демонстрирует сохраняющуюся актуальность SSRF-атак как класса уязвимостей. Несмотря на то, что о подобных проблемах известно уже много лет, разработчики продолжают допускать ошибки при реализации функций, связанных с обработкой URL и сетевых запросов. Это свидетельствует о необходимости более строгого подхода к security review кода, особенно в компонентах, работающих с внешними данными.

Эксперты по безопасности рекомендуют организациям не ограничиваться простым обновлением библиотеки, но и реализовать многоуровневую защиту, включая network segmentation, strict firewall rules и monitoring необычной исходящей сетевой активности. Такие меры могут помочь mitigate риски даже в случае, если какие-то уязвимости останутся необнаруженными или неисправленными в используемом программном обеспечении.

Ссылки

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