The OpenNET Project / Index page

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

Обновление XZ Utils 5.8.1 с устранением уязвимости

04.04.2025 10:08

Опубликован выпуск пакета XZ Utils 5.8.1, включающего библиотеку liblzma и утилиты для работы со сжатыми данными в формате ".xz". XZ Utils 5.8.1 стал первым значительным выпуском после инцидента с выявлением бэкдора, организующего вход через sshd. На прошлой неделе в Git был создан тег 5.8.0, но релиз не был объявлен официально из-за выявленных после публикации тега проблем с производительностью и совместимостью со старыми версиями GNU make.

В обновлении XZ Utils 5.8.1 устранена уязвимость (CVE-2025-31115), приводящая к аварийному завершению при попытке распаковки специально оформленных архивов. Уязвимость вызвана обращением к уже освобождённой области памяти (use after free). Атакующий может добиться записи своего значения по адресу, вычисляемому как "нулевой указатель + смещение". Проблема рассматривается как непреднамеренная ошибка, так как вызвавшее её изменение было внесено в код задолго до прихода в проект разработчика Jia Tan, деятельность которого привела к внедрению бэкдора.

Проблема проявляется начиная с выпуска XZ Utils 5.3.3alpha при декодировании в многопоточном режиме (однопоточных декодировщик проблема не затрагивает). Помимо штатных утилит из пакета xz, уязвимость проявляется и в сторонних программах, использующих функцию lzma_stream_decoder_mt из библиотеки liblzma. Уязвимость устранена в выпуске XZ Utils 5.8.1, а также перенесена в стабильные ветки 5.4 и 5.6. Проследить за появлением обновлений в дистрибутивах можно на следующих страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. В качестве обходного пути защиты можно отключить декодирование файлов в многопоточном режиме, используя при запуске xz опции "--decompress --threads=1" или применяя утилиту xzdec.

Из функциональных изменений в ветке XZ Utils 5.8 можно отметить:

  • В декодировщик LZMA/LZMA2 добавлена возможность использования инструкций SSE2 вместо функции memcpy() на 32- и 64-разрядных системах x86. Изменение позволило сократить время декодирования до 5% при сборке с Glibc, и до 15% при сборке с musl при распаковке файлов с очень высоким уровнем сжатия.
  • В liblzma повышена скорость кодирования на 64-разрядных системах PowerPC и RISC-V.
  • В lzma/bcj.h добавлен низкоуровневый API BCJ-фильтров (Branch/Call/Jump) для систем RISC-V, ARM64 и x86.
  • Переписан код вычисления CLMUL CRC для систем x86, x86-64 и E2K.
  • На платформах с процессорами LoongArch задействованы инструкции для ускорения вычисления контрольных сумм CRC32.
  • В утилите "xz" обеспечен вызов функции fsync() для сброса файловых кэшей для результирующего файла перед удалением исходного файла. Для отключения синхронизации перед удалением реализована опция "--no-sync".
  • В утилитах xz, xzdec и lzmainfo при выводе информации на экран обеспечена замена непечатных символов на знак вопроса.
  • В xz и xzdec на платформе Linux для изоляции процесса реализована поддержка 5 и 6 версий механизма Landlock.
  • Добавлен скрипт для проверки лицензий build-aux/license-check.sh.
  • Объявлены устаревшими скрипты lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep и lzfgrep, реализованные в виде надстроек над утилитой xz.


  1. Главная ссылка к новости (https://www.mail-archive.com/x...)
  2. OpenNews: В NixOS предложен метод защиты от подстановки бэкдоров, таких как в XZ
  3. OpenNews: Проект XZ опубликовал результат аудита коммитов и первое обновление после выявления бэкдора
  4. OpenNews: Попытки получения контроля над открытыми проектами, похожие на случай с пакетом xz
  5. OpenNews: Разбор логики активации и работы бэкдора в пакете xz
  6. OpenNews: В библиотеке xz/liblzma выявлен бэкдор, организующий вход через sshd
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63017-xz
Ключевые слова: xz, compress
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Витюшка (?), 10:43, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Here we are again
     
     
  • 2.49, Аноним (49), 15:41, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Уязвимость вызвана обращением к уже освобождённой области памяти (use after free).

    Просто XZ Utils писался ненастоящими сишниками. Настоящие сишники такого бы не допустили.

     
     
  • 3.51, Аноним (-), 15:46, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы думаете расты такое не напишут? Они мало что такое же могут написать, так ещё не видеть и не проверять нечто подобное, потому что язык у них типо безопастный.
     
  • 3.53, Аноним (-), 15:56, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я вот не сишник, но мне вот честно обидно как русские люди друг к другу относятся. Что вы этим хотите сказать? Что к сишникам нужно хуже относиться? Что не нужна работа на си? Я помню время когда рассказывали что дельфисты не программисты, хотя вот был отличный сайт Королевство Делфи и много книг об этом языке, да и софт был весьма неплохой. У меня вот на телефоне до сих пор есть AIMP. А упаковать самораспаковывающийся архив с выполнением вредоносной программы, да может даже и оформить это как бинарный файл нынче и школьник может после курса "этического" хакинга. Причем некоторые форматы сжатия предполагают выполнение таких сценариев после распаковки.
     

  • 1.2, User (??), 10:47, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Jia Tun уже занялся переписыванием на соседнюю новость
     
     
  • 2.37, Аноним (-), 13:45, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Jia Tun уже занялся переписыванием на соседнюю новость

    В смысле, это где он бэйсик чтоли выложил? А бэкдор там где?

     
  • 2.48, Аноним (-), 15:36, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    North Korea rules.
     

  • 1.4, Аноним (4), 11:06, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    После прошлого года вообще нет доверия к этому XZ, потому что XЗ что там с безопасностью.
     
  • 1.6, Аноним (6), 11:16, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >приводящая к аварийному завершению при попытке распаковки специально оформленных архивов

    Так а где уязвимость?

     
  • 1.9, Аноним (-), 11:29, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Проблема рассматривается как непреднамеренная ошибка, так как
    > вызвавшее её изменение было внесено в код задолго до прихода
    > в проект разработчика Jia Tan, деятельность которого привела к
    > внедрению бэкдора.

    Даааааа! Все ошибки непреднамеренные)))

    Просто непреднамеренно забыли проверить на NULL.
    А потом еще раз непреднамеренно забыли проверить не вышли ли за границы))

    + assert(in != NULL || *in_pos == in_size);
    + assert(out != NULL || *out_pos == out_size);

    + assert(*in_pos <= in_size);
    + assert(*out_pos <= out_size);

    Возможно там этих ЖыТянок половина контрибьюторов, просто они за разные фракции играют.

     
     
  • 2.13, Да ну нахер (?), 11:49, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего что assert разворачивается в noop в релизном билде?
     
     
  • 3.19, HyC (?), 12:02, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не всегда. Надо смотреть переопределено ли NDEBUG, и если да, то как в релизном билде.
     
  • 2.34, Совершенно другой аноним (?), 13:22, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Прошу прощения, но как говорится, "вот Вы говорите, а кажется, что Вы бредите" (с)

    Там правка совсем не в assert()-ах, тем более, что assert()-ы вообще не для этого предназначены. Если так интересно, то патч находится по адресу https://tukaani.org/xz/xz-cve-2025-31115.patch

     
  • 2.58, Neon (??), 21:47, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    За любовь к assert'ам надо жестоко бить ногами.) Проверки надо делать не только в дебаге,но и в релизах тоже
     

  • 1.17, Аноним (-), 12:01, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Проблема рассматривается как непреднамеренная ошибка

    Это как, они случайно дырявый язык взяли? С каких пор использование Си - не саботаж, а "непреднамеренная ошибка"?

     
     
  • 2.20, Аноним (20), 12:03, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Со времён K&R.
     
  • 2.47, Аноним (47), 15:22, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Добро пожаловать, евангелист!

    Просветите нас! А то тут все темные, священного слова не знают!

     

  • 1.21, Аноним (-), 12:05, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > XZ Utils 5.8.1 стал первым значительным выпуском после инцидента с выявлением бэкдора, организующего вход через sshd.

    debian 11

    $ xz --version
    xz (XZ Utils) 5.2.5
    liblzma 5.2.5


     
     
  • 2.33, Аноним (33), 13:21, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> XZ Utils 5.8.1 стал первым значительным выпуском после инцидента с выявлением бэкдора, организующего вход через sshd.
    > debian 11
    > $ xz --version
    > xz (XZ Utils) 5.2.5
    > liblzma 5.2.5

    Ну и к чему этот пост? К тому что в Debian более старые версии, ну так об этом знают все кто знает про Debian чуть больше, чем то что на нём основана их Убунточка.

     
     
  • 3.56, Аноним (-), 16:54, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    поправлю - более рабочие.
     
  • 2.38, Аноним (38), 13:47, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    5.2.5-2.1~deb11u1 < 5.4.0 < 5.6.0

    Всё верно. Проблемы не применимы. Работает, не трожь. А мелочи и патчем поправить можно.

     

  • 1.22, Аноним (22), 12:27, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >  декодировщик LZMA/LZMA2 добавлена возможность использования инструкций SSE2 вместо функции memcpy() на 32- и 64-разрядных системах x86.

    Когда-нибудь они дойдут до SSE3 и SSE4.
    Лет через 20.
    Но это не точно.

     
     
  • 2.29, Аноним (29), 12:58, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    memcpy не реализует те же самые инструкции, тем более с включёнными уровнями оптимизаций и встроенным в компилятор memcpy?
     
     
  • 3.50, Ivan_83 (ok), 15:44, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это сильно зависит от компелятора и libc.
    Для той же FreeBSD там внутри memcpy есть уже код для более свежих SSE/AVX и куча других оптимизаций.
     

  • 1.31, Аноним (31), 13:13, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Уязвимость устранена в выпуске XZ Utils 5.8.1, а также перенесена в стабильные ветки 5.4 и 5.6

    К этому не мешало бы добавить:
    The bug has been fixed in XZ Utils 5.8.1, and the fix has been committed to the v5.4, v5.6. No new release packages will be made from the old stable branches, but a patch is available

     
  • 1.39, RM (ok), 13:47, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Уязвимость устранена в выпуске XZ Utils 5.8.1, а также перенесена в стабильные ветки 5.4 и 5.6.

    прааальна, перемещаем уязвимости в старые версии...
    прикольная опечатка

     
     
  • 2.42, Аноним (38), 14:30, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь сделай поиск *lzma*.dll на своей секурной винде.
     
  • 2.43, Аноним (43), 14:33, 04/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А мне нраица! Ом-ном-ном! *усиленна кушоед кагтуз*
     

  • 1.46, Аноним (46), 14:39, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    подскажите для сжатия что указывать чтобы максимум тредов использовать?
     
  • 1.54, Аноним (-), 16:00, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Уязвимость вызвана обращением к уже освобождённой
    > области памяти (use after free).

    Как же так вышло??
    Неужели лучшие умы человечество опять допустили такую банальную ошибку!

     
  • 1.57, dannyD (?), 17:47, 04/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    в генту обновился до 5.6.4-r1
     

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



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

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