Профиль: Аноним (вход | регистрация) не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 обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:41, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/–
    Не, ну это 10 из 10
     
     
  • 2.46, Метрика (?), 11:27, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Бери выше
     
  • 2.89, Аноним (89), 12:43, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Это 100 из 10, а сколько ещё такого нам приготовят растерманы в будущем?
     

  • 1.5, warlock66613 (ok), 10:47, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    я надеюсь что подобных уязвимостей будет всё больше, так как это значит что Rust используется всё более активно.
     
     
  • 2.34, Метрика (?), 11:13, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Просто ржавчина начала с языка осыпаться, оголив миру его дырявое нутро
     
     
  • 3.71, Аноним (71), 12:00, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ты про либхтм2))?
    Да, тут растеры очень затупили, использовав такой кусок багованного кода.
    Будет им наука!
     
  • 2.57, Аноним (57), 11:43, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    То есть важно не отсутствие уязвимостей, а просто чтобы всё было на расте? Ну я догадывался.
     
     
  • 3.90, warlock66613 (ok), 12:45, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Важно отсутствие undefined behavior, то есть синтаксическая корректность кода. Уменьшение количества и изменение характера уязвимостей -- приятный побочный эффект, а не самоцель. Отсутствие уязвимостей -- это идеал, к которому нужно стремиться, но который не так-то просто достичь, так что некоторое количество уязвимостей -- совершенно нормальная ситуация.
     

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

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

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

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

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

    Конкретно в этом случае ничего не мешало взять гугловую либу.

     
     
  • 6.77, Аноним (32), 12:10, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Кроме того, что её не сущестововало, и не факт, что она и сейчас имеет требуемую функциональность (и когда-нибудь будет иметь).
     
  • 6.84, oneMetr (?), 12:37, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    У нас на работе принят эвфемизм "улучшаем" или "дорабатываем". Т.е мы не переписываем, а дорабатываем. Мы Бизнесу нервы экономим, а они нам :)
     
     
  • 7.88, Аноним (88), 12:43, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > У нас на работе принят эвфемизм "улучшаем" или "дорабатываем". Т.е мы не переписываем, а дорабатываем. Мы Бизнесу нервы экономим, а они нам :)

    Хахаха, отлично! Надо взять на вооружение.

    У меня лид оформлял задачи переписывания абадонд либы как "глубокий рефакторинг" и "закрытие технического долга"))


     
  • 2.69, faa (?), 11:56, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    На поддержку libxml2 забили.
     

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

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

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

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


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

    :)))

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

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

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

  • 1.12, Аноним (18), 10:56, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Ошибки были в ансейв-коде?
     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну так компилятор пишут люди и они в миллионнных кодовых база часто ошибаются, так кто эти инструкции транслирует? Святой дух?
     
     
  • 5.67, Аноним (48), 11:54, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Ну так компилятор пишут люди и они в миллионнных кодовых база часто ошибаются

    И чтобы ошибатся меньше, они используют дополнительные инструменты
    "С 1.1 до 2.4 млн строк кода увеличен охват кодовой базы, вовлечённой в fuzzing-тестирование. Также был расширен используемый для fuzzing-тестирования инструментарий, а число применяемых для проверки fuzzing-движков увеличено с 12 до 15"
    (opennet.ru/opennews/art.shtml?num=60707)

    У разработчиков компилятора есть ресурсы это делать и тем не менее находятся ошибки.

     

  • 1.53, xsignal (ok), 11:38, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Ну вот и всё, "волшебная таблетка" оказалась обычным сахаром... Ни от чего раст не избавляет, ни от чего не спасает.
     
     
  • 2.56, Метрика (?), 11:40, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Это сразу было ясно, когда ни один крупный производитель софта не пересел на ржавого
     
     
  • 3.76, Аноним (76), 12:05, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    > Это сразу было ясно, когда ни один крупный производитель софта

    Гугл, не? AWS?
    Мелкомягкие со своим азуром?
    Может, НВидия?

    Про каких производителей софта идет речь?))

     
  • 2.58, Аноним (58), 11:44, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Ни от чего раст не избавляет, ни от чего не спасает.

    Как же не спасает?
    10 из 10 же логическая, а не с памятью, LOL))

     
     
  • 3.63, Аноним (57), 11:50, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > 10 из 10 же логическая, а не с памятью

    А, ну тогда норм, можно даже и не исправлять, раз не с памятью.

     
     
  • 4.66, Аноним (66), 11:53, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > можно даже и не исправлять

    Так исправили же.

    > раз не с памятью

    А на это гарантий и не давали))

     
  • 2.59, Аноним (48), 11:48, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    > Ни от чего раст не избавляет, ни от чего не спасает.

    Совсем-совсем? А как же избавление от СИшников?

    В новости речь про 2 грубейших ошибки:
    - игнорирование части данных: логическая или, скорее, архитектураная проблема
    - использование дырявой либхмл2

    К сожалению раст тут бессилен.

     
     
  • 3.64, Аноним (57), 11:51, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    То есть от сишников избавились, а других не завезли? То есть раст не про то, чтобы завести хороших программистов, а про то, чтобы избавиться от существующих?
     
     
  • 4.70, Аноним (70), 11:59, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    > То есть от сишников избавились, а других не завезли?

    Каких других? А кто написал тот убогий код, про который мы читаем новость?

    Программисты везде одинаковые. Вопрос в средствах их контроля.

    > То есть раст не про то, чтобы завести хороших программистов, а про то, чтобы избавиться от существующих?

    Раст про то, чтобы уменьшить кол-во ошибок с памятью.
    Так как в новости речь про логическую ошибку и ошибку памяти в СИшной либе - то цель вроде выполняется.

     

  • 1.54, Аноним (58), 11:39, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/–
    > используемой в SVG-файлах, в librsvg задействованы функции из Си-библиотеки libxml2

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

     
     
  • 2.62, Аноним (48), 11:49, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Причем pure-rust аналог можно было с̶п̶и̶з̶ позаимствовать прямо их репозитория Хрома.
    Гугл уже провел работу по выкидыванию дыpяшечной libxml2 и замены на правильную.
    Вот к чему приводит лень.
     

  • 1.60, Аноним (60), 11:48, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/–
    забавно, кажется rust становится популярным. Матереет однако =)
     
     
  • 2.79, xsignal (ok), 12:19, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Да кому он теперь нужен, если ИИ научился находить ошибки и уязвимости в Си-коде?
     
     
  • 3.81, Аноним (81), 12:34, 27/10/2026 Скрыто ботом-модератором     [к модератору]
  • –1 +/–
     
     
  • 4.87, xsignal (ok), 12:41, 27/10/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     
     
  • 5.91, Аноним (88), 12:46, 27/10/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     

  • 1.75, Аноним (75), 12:05, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > Уязвимость может использоваться для обхода почтовых фильтров, антивирусных сканеров и прочих систем проверки безопасности.

    Такие скрытые возможности есть у какого-нибудь архиватора, ну, кроме zip-rs? С виду безобидный архив, а на деле... Время от времени может пригодиться.

     
  • 1.85, Аноним (85), 12:37, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Растофилы очень любят указывать на C уязвимости, но теперь их черёд. Хаха
     

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



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