PHPSpreadsheet — это библиотека на чистом PHP для чтения и записи файлов электронных таблиц. Сканер безопасности, отвечающий за предотвраще…
PHPSpreadsheet — это библиотека на чистом PHP для чтения и записи файлов электронных таблиц. Сканер безопасности, отвечающий за предотвращение атак XXE в XLSX-ридере, можно обойти, слегка изменив структуру XML, используя пробелы. На серверах, которые позволяют пользователям загружать свои собственные листы Excel (XLSX), файлы сервера и конфиденциальная информация могут быть раскрыты путем предоставления специально созданного листа. Функция сканирования безопасности в src/PhpSpreadsheet/Reader/Security/XmlScanner.php содержит ошибочную проверку кодировки XML для получения кодировки XML входного файла в функции toUtf8. Функция ищет кодировку XML с помощью определенного регулярного выражения, которое ищет `encoding="*"` и/или `encoding='*'`, если не найдено, то по умолчанию используется кодировка UTF-8, которая обходит логику преобразования. Эту логику можно использовать для передачи полезной нагрузки XXE в кодировке UTF-7, используя пробел до или после = в определении атрибута. Раскрытие конфиденциальной информации через XXE на сайтах, которые позволяют пользователям загружать свои собственные электронные таблицы Excel и анализировать их с помощью парсера Excel PHPSpreadsheet. Эта проблема была решена в версиях 1.29.1, 2.1.1 и 2.3.0. Всем пользователям рекомендуется обновиться. Для этой уязвимости нет известных обходных путей.
Продукт обрабатывает XML-документ, который может содержать XML-сущности с URI, разрешающимися в документы за пределами предусмотренной сферы контроля, из-за чего продукт включает некорректные документы в свой вывод.
https://cwe.mitre.org/data/definitions/611.html →Открыть в коллекции CWE →Данная атака использует свойство замены сущностей в ряде языков сериализации данных (например, XML, YAML и т. д.), при котором значением замены является URI. Специально сформированный файл может содержать ссылку на URI, потребление которого требует значительных ресурсов, что создаёт условие отказа в обслуживании. Это может привести к зависанию, аварийному завершению системы или выполнению произвольного кода в зависимости от URI.
https://capec.mitre.org/data/definitions/221.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| Отслеживается | ||
| Отслеживается | ||
| phpspreadsheet | * | Отслеживается |