В 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 со специально оформленным почтовым вложением.
Источник: http://www.opennet.ru/opennews/art.shtml?num=60376