The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в Perl-модуле Spreadsheet::ParseExcel, используемая для компрометации Barracuda ESG

06.01.2024 11:04

В 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 со специально оформленным почтовым вложением.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Компрометация шлюзов Barracuda ESG, требующая замены оборудования
  3. OpenNews: Cloudflare представил инструменты для выявления перехвата HTTPS
  4. OpenNews: Barracuda не признает нарушения патентов Trend Micro в ClamAV
  5. OpenNews: Выпуск системы фильтрации спама SpamAssassin 3.4.5 с устранением уязвимости
  6. OpenNews: Уязвимости в интерпретаторе Perl, связанные с обработкой переменных окружения и regexp
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60376-barracuda
Ключевые слова: barracuda, excel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (56) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 11:27, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Barracuda ESG (Email Security Gateway)

    Прикольное название для фигни с выполнением ремотного кода. Возможно, это опечатка и они имели в виду Email InSecurity Gateway?! :)

     
     
  • 2.7, Аноним (7), 11:51, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, хотя бы содержимое ICMP-пакетов на исполнение не запускает, как Cisco. Уже безопасненько.

    А исполнение "проверяемых" файлов — у кого из антивирусов этого не было?

     
     
  • 3.14, Аноним (14), 13:25, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Для этого есть нетворк манагер. Там же линукс внутри, а ИБМ/Редхат продвигает такие вулны на всех уровнях. В данном случае, конечно, безопасность уровня перл -- весь код такой и всегда так было.
     
     
  • 4.15, Аноним (7), 13:32, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Для этого есть нетворк манагер. Там же линукс внутри, а ИБМ/Редхат продвигает такие вулны на всех уровнях. В данном случае, конечно, безопасность уровня перл -- весь код такой и всегда так было.

    ^^^ это сгенерировано либо нейросеткой, либо поехавшим.

     
     
  • 5.16, Аноним (14), 13:40, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >^^^ это сгенерировано либо нейросеткой, либо поехавшим.

    На основании чего ты сделал подобные выводы? Мои выводы основаны на том, что РХ пропихнул свой толстый вендорлок буквально всем (достаточно посмотреть, сколько из проблемных компонентов типичного дистрибутива контролируется им) и уже в открытую занялся пропихиванием сомнительных зависимостей на перле. А шел/перл от редхата это автоматически подразумевает вулны.

     
     
  • 6.19, Аноним (7), 13:54, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > На основании чего ты сделал подобные выводы?

    На основании того, что ваши комментарии являются бессвязным бредом.

     
     
  • 7.21, Аноним (14), 13:59, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не являются, ограниченность и неосведомлённость отдельных комментаторов может вызывать у тех подобное впечатление. И, если я правильно понял, мейнтейнер сабжа на перлопомойке тоже сотрудник РХ. Он конечно же знал, что в коде вулны с евал. Кто, если не он?
     
     
  • 8.22, Аноним (7), 14:25, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Докажите Попробуйте написать осмысленный текст ... текст свёрнут, показать
     
  • 8.33, Аноним (33), 18:12, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой-то совсем кривой AI Перестарались с гуманизацией текстов, наполнение ошиб... текст свёрнут, показать
     
     
  • 9.35, Аноним (14), 18:22, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Семён, ты совсем не палишься Твои сложности восприятия информации только твоя п... текст свёрнут, показать
     
     
  • 10.36, Аноним (33), 19:26, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не, не угадал... текст свёрнут, показать
     
     
  • 11.37, Аноним (14), 19:33, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А может, и угадал, кто знает ... текст свёрнут, показать
     
  • 6.30, Аноним (33), 18:01, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У вас просто поток контекстуально несвязанных выражений, это даже прочитать сложно
     
     
  • 7.31, Аноним (14), 18:04, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > У вас просто поток контекстуально несвязанных выражений

    контекст тут был

    >содержимое ICMP-пакетов на исполнение

    и все предложения связаны с ним

    >это даже прочитать сложно

    сложность чтения гуманитариями не имеет значения, те, кого эта тема затрагивает -- понимают.

     
     
  • 8.61, Anonymous1 (?), 11:07, 08/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А эти те, кого эта тема затрагивает - они сейчас с тобой, в твоей комнате ... текст свёрнут, показать
     
     
  • 9.64, Аноним (14), 16:43, 08/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не проецируй Неспособность понимания контекста и отсутствие абстрактного мышлен... текст свёрнут, показать
     
  • 3.29, Аноним (33), 17:59, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Порядочные сервисы проверок обычно запускают тесты в изолированных средах, откуда даже по сети никуда сходить нельзя. Такие проблемы не должны приводить к большим проблемам, кроме получения ложного результата проверки вложения.
     
     
  • 4.47, Аноним (7), 02:26, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это было про локальные антивирусы, которые на компах стоят.
     

  • 1.5, Шарп (ok), 11:32, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Наличие в коде eval и аналогов это признак говнокода.
     
     
  • 2.8, ИмяХ (ok), 12:02, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Наличие в языке eval и аналогов это признак гoвнoязыка.

     
     
  • 3.10, YetAnotherOnanym (ok), 12:17, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а наличие лезвия - признак говноинструмента.
    Когда пишешь скрипт для обработки каких-то своих данных, eval вполне пригодная штука, использовать его проще, чем подвязать сишную либу и дёргать функции в ней. Но когдв речь идёт о недоверенных данных из внешнего источника - тут за eval надо бить по рукам.
     
     
  • 4.11, Аноним (7), 12:36, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >  Ага, а наличие лезвия - признак говноинструмента.

    Если оно находится на рукояти в месте хвата — несомненно.

    > Когда пишешь скрипт для обработки каких-то своих данных, eval вполне пригодная штука

    Вот именно поэтому на такой скрипт и нужно вешать надпись большими буквами "govnokod", чтобы никто не вздумал применять его на внешних данных.

     
     
  • 5.12, Аноним (7), 12:44, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вот именно поэтому на такой скрипт и нужно вешать надпись большими буквами "govnokod", чтобы никто не вздумал применять его на внешних данных.

    Но лучше, конечно, сделать всё для минимизации вероятности подобного исхода: скрипт — стереть, автора — перевести в дворники.

     
     
  • 6.40, _ (??), 20:44, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Людям свойственно ошибаться. (С)

    Так что ошибку - поправят, автору дадут небольшую премию за исправление кода, тысяч в 5 долариков и всех то дел!
    И только школота на опенете будет "переводить в дворники" пока мамка борщ есть не позвала :)

     
     
  • 7.45, Аноним (7), 02:23, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Людям свойственно ошибаться. (С)

    Использование eval — это не ошибка, а намеренное вредительство.

     
     
  • 8.56, man perlfunc разрешил (?), 19:20, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если только строчного ... текст свёрнут, показать
     
  • 6.58, YetAnotherOnanym (ok), 19:51, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ага. Сотри.
     
  • 5.59, YetAnotherOnanym (ok), 20:06, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты видишь рукоять там, где расположено лезвие, то тебе определённо не следует прикасаться ни к какому инструменту.
     
  • 4.32, Аноним (33), 18:07, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В таком сценарии можешь написать эти же функции в виде либы или модуля и заносить в код как положено, а не через задницу. Код и данные должны быть отдельно.
     
     
  • 5.41, _ (??), 20:45, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А ещё на земле не должно быть войн, болезней и неравенства.
    Я в курсе как должно, теперь ты в курсе как оно на смом деле :-D
     
  • 2.28, Аноним (28), 17:50, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Отсутствие eval - признак статического языка, не более. В динамических он должен быть.
     
     
  • 3.54, Аноним (54), 17:43, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    про это и намек, что статические языки рулят)
     

  • 1.13, crypt (ok), 12:59, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Я его слепила из того, что было. Коммерческий продукт страдает от использования noname opensource компонентов.
     
     
  • 2.18, лютый жабби.... (?), 13:51, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Коммерческий продукт страдает от использования noname opensource компонентов.

    ну, это нормально (в смысле типично). архитектора конечно на мыло, в 2024м году использовать перловку, вместо божественной жабки и apache poi

     
     
  • 3.20, Аноним (7), 13:55, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На жабку у них не хватило памяти :(
     
  • 3.23, Аноним (23), 14:42, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Жабку на встроенном девайсе? Петончег же.
     
     
  • 4.25, Аноним (25), 15:09, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну уж нет уже пора игогошечку.
     
  • 3.34, Аноним (33), 18:21, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Здесь нужно использовать python, lua или нечто подобное. perl взяли, вероятно, потому что вместо разработки собственного движка начали допиливать какой-нибудь Spamassassin
     
     
  • 4.42, _ (??), 20:55, 06/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >какой-нибудь Spamassassin

    Там не только SA - там вся колбаса была куплена у одной канадской фирмы в 2к-десятых. Видимо радикально переделать - дорого, ну вот и ... IronPort-ы там же паслись, так что смотрите за апдейтами :)

     

  • 1.17, rvs2016 (ok), 13:50, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Проблема устранена в обновлении
    > Spreadsheet::ParseExcel 0.66.

    Когда это обновление к нашим завезут?
    А то у наших пока версия 0.65_2,1:

    % pkg search p5-Spreadsheet-ParseExcel
    p5-Spreadsheet-ParseExcel-0.65_2,1 Get information from Excel file

     
  • 1.26, Аноним (28), 17:38, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На цпане огромное количество модулей с плохим качеством кода. Все надо вычитывать.
     
  • 1.38, Аноним (38), 20:07, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >eval

    Не уязвимость, а бэкдор. То, что eval запрещено использовать, знают все.

     
     
  • 2.53, Аноним (53), 15:05, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вам кто-то запретил, вот и не используйте.
     
  • 2.55, Аноним (55), 17:59, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Не уязвимость, а бэкдор

    https://siliconangle.com/2023/12/28/barracuda-patches-email-security-gateway-v

     

  • 1.39, Аноним (39), 20:40, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    В js постоянно жуткие баги в npm находят и норм, а тут за что лет один баг на перле и набежало хейтеров...
     
     
  • 2.57, ку (?), 19:23, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    неосиляторы, сэр. комплексы. и ещё этот чортов утёнок.
     
  • 2.60, Аноним (60), 21:25, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю, просто разработки на js ведётся на порчдок больше чем на perl
     

  • 1.48, Tron is Whistling (?), 09:41, 07/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пппппппц. Эвал для разбора форматирования - это высший пилотаж, за который вот это вот стоило бы вынести из репозитария вместе с авторами, и никогда больше не пускать.
     
  • 1.49, Tron is Whistling (?), 09:42, 07/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А так - ну, очередное подтверждение тому, что все хламорепозитарии - зло.
     
  • 1.50, Аноним (50), 11:38, 07/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    9.5 лет прошло с момента предыдущего обновления модуля.

    Revision history for Perl module Spreadsheet::ParseExcel.

    0.66 December 29 2023

        ! Fix for CVE-2023-7101
          https://github.com/runrig/spreadsheet-parseexcel/issues/33

    0.65 March 15 2014
        ! Merge support for accessing hyperlink data

     
     
  • 2.52, Аноним (53), 14:59, 07/01/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    9.5 лет написанный код работал без необходимости постоянно спички вставлять.
    Вам такое и не снилось.
     
     
  • 3.62, Шарп (ok), 12:06, 08/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    9.5 лет работал бекдор. Вам такое и не снилось.


     

  • 1.51, Tron is Whistling (?), 11:45, 07/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А, то есть оно уже ещё и тухлое. Ну, классика cpan'о-пипо-npm'ов, да.
     
  • 1.63, Liin (ok), 13:10, 08/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    За eval в коде надо бить, возможно, даже ногами. Это ж просто бомба замедленного действия.
     
     
  • 2.66, PnD (??), 16:28, 09/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В обработке "внешних" данных — да.
    В привилегированных конфигураторах — нет. (Чем всякие DSL бессовестно пользуются. И неважно как это называется.)
     

  • 1.65, anonymous (??), 01:24, 09/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ESG же это Environment, Sustainability, and Governance.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру