Уязвимость в Perl-модуле Spreadsheet::ParseExcel, используемая для компрометации Barracuda ESG
Дата публикации:Sat, 06 Jan 2024 11:04:39 +0300
В 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 со специально оформленным почтовым вложением.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60376