W module Perl Spreadsheet::ParseExcel, który oferuje funkcje do analizy plików w formacie Excel, ujawniono krytyczną lukę (CVE-2023-7101), która pozwala na wykonanie dowolnego kodu podczas przetwarzania plików XLS lub XLSX zawierających specjalnie sformatowane zasady formatowania liczb. Luka wynika z użycia danych uzyskanych z przetwarzanego pliku w wywołaniu „eval”. Problem został rozwiązany w aktualizacji Spreadsheet::ParseExcel 0.66. Istnieje prototyp exploita. Lukowy kod: if ( $format_str =~ /^\[([=][^\]]+)\](.*)$/ ) { $conditional = $1; $format_str = $2; } … $section = eval "$number $conditional" ? 0 : 1; Przykład exploita do wykonania polecenia whoami: 123;system('whoami > /tmp/inject.txt')]123"/>
Luka została wykryta przez firmę Barracuda Networks podczas analizy ataku związanego z złośliwym oprogramowaniem na urządzenia Barracuda ESG (Email Security Gateway). Przyczyną kompromitacji urządzeń była luka 0-day (CVE-2023-7102) w module Spreadsheet::ParseExcel, używanym w Barracuda ESG do przetwarzania załączników e-mailowych w formacie Excel. Aby wykonać swój kod na systemach korzystających z Barracuda ESG, wystarczyło wysłać e-mail ze specjalnie przygotowanym załącznikiem.
Źródło: opennet.ru
