В Perl-модуле Spreadsheet::ParseExcel, предоставляющем функции для разбора файлов в формате Excel, выявлена критическая уязвимость (CVE-2023-7101), позволяющая выполнить произвольный код при обработке файлов XLS или XLSX, включающих специально оформленные правила форматирования чисел. Уязвимость вызвана использованием при построении вызова «eval» данных, полученных из обрабатываемого файла. Проблема устранена в обновлении Spreadsheet::ParseExcel 0.66. Имеется прототип эксплоита. Уязвимый код: if ( $format_str =~ /^\[([<>=][^\]]+)\](.*)$/ ) { $conditional = $1; $format_str = $2; } … $section = eval «$number $conditional» ? 0 : 1; Пример эксплоита для выполнения команды whoami: <numFmts count=»1″> <numFmt numFmtId=»123″ formatCode=»[>123;system(‘whoami > /tmp/inject.txt’)]123″/> </numFmts>
Уязвимость была выявлена компанией Barracuda Networks в ходе разбора атаки по размещению вредоносного ПО на устройствах Barracuda ESG (Email Security Gateway). Причиной компрометации устройств оказалась 0-day уязвимость (CVE-2023-7102) в модуле Spreadsheet::ParseExcel, используемом в Barracuda ESG для разбора почтовых вложений в формате Excel. Для выполнения своего кода на системах, использующих Barracuda ESG, было достаточно отправить email со специально оформленным почтовым вложением.
Quelle: opennet.ru
