Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

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

Уязвимости в Rust-библиотеках zip-rs и librsvg

27.10.2026 10:16 (MSK)

В библиотеке zip-rs, написанной на языке Rust и насчитывающей около 10 млн загрузок в неделю, выявлена уязвимость (CVE-2026-115905), позволяющая создавать архивы, которые выглядят безобидными, но при распаковке из них извлекаются другие, изначально не показанные в списке, файлы. Файлы могут быть размещены в архиве вне структуры "Central Directory", из-за чего при просмотре списка файлов показывается одно содержимое, но при распаковке через API ZipStreamReader извлекаются другие файлы. Проблеме присвоен уровень опасности 10 из 10. Уязвимость исправлена в версии zip-rs 9.0.5.

Уязвимость вызвана использованием разных заголовков при произвольном доступе к архиву при помощи API ZipArchive и при извлечении данных в потоковом режиме при помощи API ZipStreamReader. Обработчик ZipArchive полагается на заголовок CDFH (Central Directory File Header), а ZipStreamReader при извлечении файлов считает более приоритетным заголовок LFH (Local File Header) без синхронизации дублирующихся метаданных.

Уязвимость может использоваться для обхода почтовых фильтров, антивирусных сканеров и прочих систем проверки безопасности. Атакующий может разместить в видимой части архиве документ или изображение, а в скрытую поместить исполняемый файл с вредоносным кодом, который не будет замечен антивирусом, но будет сохранён на диск при распаковке пользователем. В качестве примеров приводятся атаки на микросервисы, SaaS-платформы и системы контейнерной изоляции, в ходе которых при распаковке в каталогах с рабочими проектами не представляющих опасности архивов, например, с наборами стилей, текстовых файлов или изображений, могут быть перезаписаны скрипты и исполняемые файлы.


Дополнительно можно отметить уязвимость (CVE-2026-96889) в библиотеке librsvg, развиваемой проектом GNOME на языке Rust. Библиотека применяется в GTK и приложениях GNOME для отрисовки SVG, а также задействована в популярном NPM-пакете sharp, насчитывающем 80 млн загрузок в неделю и используемом в качестве зависимости у почти 11 тысяч проектов. Уязвимость позволяет организовать выполнение своего кода при обработке специально оформленных SVG-изображений. Проблема устранена в версиях librsvg 2.56.6, 2.60.3, 2.62.4 и 2.63.1, а также к NPM-пакете sharp 0.35.5. Среди пострадавших проектов оказалась платформа PeerTube (зависимость обновлена в сегодняшнем выпуске PeerTube 8.3.2).

Для разбора XML-разметки, используемой в SVG-файлах, в librsvg задействованы функции из Си-библиотеки libxml2. Уязвимость вызвана тем, что при наличии в SVG вложенных XML-конструкций Xincludes, включающих дублирующиеся элементы с повторяющимися именами, происходит обращение к памяти после её освобождения. Сбой возникает так как библиотека librsvg освобождает память под XML-элементы, которые ещё продолжают использоваться в парсере libxml2.

  1. Главная ссылка к новости (https://github.com/zip-rs/zip2...)
  2. OpenNews: Уязвимость Zip Slip, затрагивающая библиотеки для распаковки архивов
  3. OpenNews: Уязвимость в 7-Zip, приводящая к выполнению кода при обработке образов NTFS
  4. OpenNews: Уязвимость в Python-модуле TarFile, допускающая запись в любые части ФС
  5. OpenNews: Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за пределы базового каталога
  6. OpenNews: Уязвимость в Rust-библиотеках для формата TAR, приводящая к распаковке файлов из вложенного архива
Лицензия: CC BY 3.0
Наводку на новость прислал Твайлайт Спаркл 2
Короткая ссылка: https://opennet.ru/66555-zip
Ключевые слова: zip, librsvg, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:41, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/–
    Не, ну это 10 из 10
     
     
  • 2.46, Метрика (?), 11:27, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Бери выше
     

  • 1.5, warlock66613 (ok), 10:47, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    я надеюсь что подобных уязвимостей будет всё больше, так как это значит что Rust используется всё более активно.
     
     
  • 2.34, Метрика (?), 11:13, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Просто ржавчина начала с языка осыпаться, оголив миру его дырявое нутро
     

  • 1.6, Аноним (6), 10:48, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/–
    > Для разбора XML-разметки, используемой в SVG-файлах, в librsvg задействованы функции из Си-библиотеки libxml2

    Я так понимаю, уязвимость в самой libxml2, а не librsvg, и вопрос - а в  libxml2 это исправлять не стали?

     
     
  • 2.9, Аноним (1), 10:51, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    > Сбой возникает так как библиотека librsvg освобождает память под XML-элементы, которые ещё продолжают использоваться в парсере libxml2.

    Расто-программисты даже не могут память не могут правильно освободить, когда приходится с другими ЯП взаимодействовать.

     
     
  • 3.13, VVVVVV (?), 10:56, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Сишники не могут правильно освободить память в своем же ЯП
     
     
  • 4.32, Аноним (32), 11:12, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Их этого можно сделать вывод, что в растовики не умеют работать с памятью, но компоненты, которым не надо работать с памятью, написать не спешат, и полагаются на код для взрослых людей. При чём тут ЯП не ясно.
     
  • 4.41, Год лунпуса на десктопе (?), 11:21, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    100500 разных инструментов давно придумали для выявления таких технических багов (и я говорю не про ИИ - оно часто даже избыточно), просто не пиши код в блокноте.
     
     
  • 5.50, а (?), 11:35, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    как ты смеешь нападать на священный емакс с вскодом
     
  • 4.52, Метрика (?), 11:37, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Жизнь ржавого состоит в том, чтобы юзать си-либы и вопить какие они небезопасные, вечная борьба со здравым смыслом
     

  • 1.7, Аноним (7), 10:49, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Странно как-то, уязвимость "позволяющая создавать архивы, которые выглядят безобидными...". Разве тут проблема не в разных методах *извлечения*, из-за чего такие архивы (неважно где и как созданные) могут пройти проверки?
     
     
  • 2.55, Аноним (55), 11:39, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    это не уязвимость либы, это кривой формат zip-архива, либы правильно работают
     

  • 1.8, Аноним (8), 10:50, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Нескучные уязвимости. А то заколебали уже сишные дыры в памяти. Скучно.
     
     
  • 2.44, Метрика (?), 11:26, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну компилятор недоглядел, бывает, отвлекся или устал, главное верить
     
     
  • 3.45, динур (?), 11:26, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ребенок, когда его ловят на шкодстве, тоже ссылается на маму, на папу, на любого, но только не на себя.
     

  • 1.11, Смузихеб забывший пароль (?), 10:54, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    > использованием разных заголовков при произвольном доступе
    > к архиву при помощи API ZipArchive и ...
    > API ZipStreamReader

    Но это ведь делается безопасно для памяти и без UB ?


    > librsvg...происходит обращение
    > к памяти после её освобождения

    :)))

     
     
  • 2.18, Аноним (18), 11:03, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > :)))

    Что смешного? Сишная проблема протекла в ансейф блок. Растоманы прагматичны и много где базируются (пока что) на существующем коде, на который были потрачены колоссальные человеко-часов и которые вмиг не переписать. Со временем перепишут и все обертки будут ненужны

     
  • 2.22, Жироватт (ok), 11:04, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Да, RCE должно быть полностью безопасным для пользователя. И всегда иметь полностью предсказуемое поведение
     

  • 1.12, Аноним (18), 10:56, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Ошибки были в ансейв-коде?
     
     
  • 2.36, Метрика (?), 11:16, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Та не, просто им токенов не хватило, чтобы усе было в ажуре
     

  • 1.26, Аноним (26), 11:09, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    ну как же так-то, а? оказывается, на расте тоже можно плохокодить.

    им, видимо, надо перед компиляцией, автоматически на ревизию к ИА код отправлять

     
     
  • 2.42, warlock66613 (ok), 11:22, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Тут ошибки вполне нормальные, на плохое качество кода они не указывают.
     

  • 1.37, Аноним (37), 11:16, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > Для разбора XML-разметки, используемой в SVG-файлах, в librsvg задействованы функции из Си-библиотеки libxml2.

    Боже какой позор!
    Срочно выписать этих недоумков из растеров и приговорить к написанию кода на СИшке на 10 лет.

    Впрочем показательно - если у тебя в проекте есть СИшный код, то ошибки  памяти обеспечены.

     
     
  • 2.40, Метрика (?), 11:19, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Скажу больше если у тебя под капотом любого ЯП крутится машинный код которому глубоко пофиг на границы массивов и типизацию, ошибки обеспечены
     
     
  • 3.48, Аноним (48), 11:31, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Машинный код под капотом берется из святого духа?

    Или создается по инструкциям (код), в которых ошибка в типизации или границе массива потом может привести к крешу (в лучшем случае).

     
     
  • 4.49, Метрика (?), 11:34, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну так компилятор пишут люди и они в миллионнных кодовых база часто ошибаются, так кто эти инструкции транслирует? Святой дух?
     

  • 1.53, xsignal (ok), 11:38, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Ну вот и всё, "волшебная таблетка" оказалась обычным сахаром... Ни от чего раст не избавляет, ни от чего не спасает.
     
  • 1.54, Аноним (54), 11:39, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > используемой в SVG-файлах, в librsvg задействованы функции из Си-библиотеки libxml2

    Отвратительно!
    Как они вообще додумались использовать libxml2 на богомерзкой, зная насколько он дыряв. Взяли бы pure-rust аналог и не проблемы бы не было.

     

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



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: