Опубликован выпуск пакета XZ Utils 5.8.1, включающего библиотеку liblzma и утилиты для работы со сжатыми данными в формате ".xz". XZ Utils 5.8.1 стал первым значительным выпуском после инцидента с выявлением бэкдора, организующего вход через sshd. На прошлой неделе в Git был создан тег 5.8.0, но релиз не был объявлен официально из-за выявленных после публикации тега проблем с производительностью и совместимостью со старыми версиями GNU make...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63017
Here we are again
> Уязвимость вызвана обращением к уже освобождённой области памяти (use after free).Просто XZ Utils писался ненастоящими сишниками. Настоящие сишники такого бы не допустили.
Вы думаете расты такое не напишут? Они мало что такое же могут написать, так ещё не видеть и не проверять нечто подобное, потому что язык у них типо безопастный.
Во-первых, причём здесь Rust? У вас какие-то комплексы на этот счёт? Где автор высказывания хоть слово сказал про этот язык?Во-вторых, нет, не напишут, там компилятор за это по рукам надаёт. Программистам на Rust не надо проверять свой код на наличие подобных ошибок (не корректная работа с памятью) вручную, это делает за них компилятор.
В-третьих, безопасный (и производные слова) пишется без буквы "т".
В-четвертых, тут любители языка Си часто любят говорить про токсичное Раст-сообщество. А бревна в своём глазу не замечают.
Я вот не сишник, но мне вот честно обидно как русские люди друг к другу относятся. Что вы этим хотите сказать? Что к сишникам нужно хуже относиться? Что не нужна работа на си? Я помню время когда рассказывали что дельфисты не программисты, хотя вот был отличный сайт Королевство Делфи и много книг об этом языке, да и софт был весьма неплохой. У меня вот на телефоне до сих пор есть AIMP. А упаковать самораспаковывающийся архив с выполнением вредоносной программы, да может даже и оформить это как бинарный файл нынче и школьник может после курса "этического" хакинга. Причем некоторые форматы сжатия предполагают выполнение таких сценариев после распаковки.
>Что к сишникам нужно хуже относиться?Если они выступают в роли луддитов - да. В других случаях - нет.
>Что не нужна работа на си?
Для поддержки существующего кода нужна. В других случаях - нет.
Книги по Делфи были самыми худшими книгами о программировании, которые я читал в своей жизни (а прочитал я их много и самые разные). Концентрированное инфоцыганство отлитое в бронзе. Где-то на уровне видеосамоучителей по HTML от Попова. Чур меня, чур.
Ну и сам язык.. После него требуется курс реабилитации для пострадавших от ООП головного мозга. Ужасная парадигма. Столько светлых умов погубила.. Столько проектов из-за неё абстрахнулись в легаси-лету.. После всего этого дельфийства, Си был как глоток свежего воздуха. Настоящий, практичный, олдскульный компьютер-саенс. А не эти пластиковые подделки, пригодные лишь для формошлёпства..> паковать самораспаковывающийся архив с выполнением вредоносной программы
> Причем некоторые форматы сжатия предполагают выполнение таких сценариев после распаковки.Самораспаковывающийся архив, как бы, является программой - копией декодировщика, к которой в конец дописаны данные (собственно архив). Если (убедить) запустить его на исполнение, то он сможет делать всё, что любая другая программа, с теми же (пользовательскими) привилегиями. В том числе, вредить.
А вот чтобы вызвать "полезную нагрузку" из произвольного архива, распаковываемого отдельной программой, требуется найти уязвимость этой программы и проэксплуатировать (разместить данные в архиве специальным образом).
Jia Tun уже занялся переписыванием на соседнюю новость
> Jia Tun уже занялся переписыванием на соседнюю новостьВ смысле, это где он бэйсик чтоли выложил? А бэкдор там где?
North Korea rules.
После прошлого года вообще нет доверия к этому XZ, потому что XЗ что там с безопасностью.
>приводящая к аварийному завершению при попытке распаковки специально оформленных архивовТак а где уязвимость?
> Проблема рассматривается как непреднамеренная ошибка, так как
> вызвавшее её изменение было внесено в код задолго до прихода
> в проект разработчика 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);Возможно там этих ЖыТянок половина контрибьюторов, просто они за разные фракции играют.
А ничего что assert разворачивается в noop в релизном билде?
Не всегда. Надо смотреть переопределено ли NDEBUG, и если да, то как в релизном билде.
Прошу прощения, но как говорится, "вот Вы говорите, а кажется, что Вы бредите" (с)Там правка совсем не в assert()-ах, тем более, что assert()-ы вообще не для этого предназначены. Если так интересно, то патч находится по адресу https://tukaani.org/xz/xz-cve-2025-31115.patch
За любовь к assert'ам надо жестоко бить ногами.) Проверки надо делать не только в дебаге,но и в релизах тоже
Ассерты - скорее средство документирования кода, а не управления логикой программы. Используются, когда программист уверен в истинности проверки. Если подобные проверки заменить на обычный if - другой программист придёт и скажет "зачем это проверять, оно и так всегда true". Ассерты - простое понятие, но понимание их нужности обычно приходит с опытом и набитыми шишками. Как и понимание, где использовать if, а где assert.
> Проблема рассматривается как непреднамеренная ошибкаЭто как, они случайно дырявый язык взяли? С каких пор использование Си - не саботаж, а "непреднамеренная ошибка"?
Со времён K&R.
Добро пожаловать, евангелист!Просветите нас! А то тут все темные, священного слова не знают!
libxz порядка 15 лет, тогда из memory-safe языков были только языки с GC типа жабы, и тот был намертво фризящей всё помойкой с реализацией через подсчет ссылок
А теперь мемори-сейф это брэйнфачный крюк на котором даже Иа писать не хочет. Запилиле бы давно этот ХЗ на ГОУ и обмазались
Хорошо. Но когда в компиляторе Rust будет найдена закладка от АНБ (за авторством п-ста из M$), язык получит официальный статус "дырявого", а его продвигатели-pтом на Опеннете - статус "дырявых". Договорились?
> Хорошо. Но когда в компиляторе Rust будет найдена закладка от АНБПрямо как в ядре? Bvp47 жил 10 лет и тыщщи глаз не заметили.
> язык получит официальный статус "дырявого", а его продвигатели-pтом на Опеннете - статус "дырявых". Договорились?Хм, я не сильно разбираюсь в вашем АУЕ и теории корпускулярно волновых зашкваров.
Так что скорее нет)
Бекдор можно внедрить куда угодно - вон аффтор ХЗ подтвердит вместе с ЖинТянами.А просто по природе быть дырявым - это к сишечке и ее бастарду С++.
> XZ Utils 5.8.1 стал первым значительным выпуском после инцидента с выявлением бэкдора, организующего вход через sshd.debian 11
$ xz --version
xz (XZ Utils) 5.2.5
liblzma 5.2.5
>> XZ Utils 5.8.1 стал первым значительным выпуском после инцидента с выявлением бэкдора, организующего вход через sshd.
> debian 11
> $ xz --version
> xz (XZ Utils) 5.2.5
> liblzma 5.2.5Ну и к чему этот пост? К тому что в Debian более старые версии, ну так об этом знают все кто знает про Debian чуть больше, чем то что на нём основана их Убунточка.
поправлю - более рабочие.
5.2.5-2.1~deb11u1 < 5.4.0 < 5.6.0Всё верно. Проблемы не применимы. Работает, не трожь. А мелочи и патчем поправить можно.
> декодировщик LZMA/LZMA2 добавлена возможность использования инструкций SSE2 вместо функции memcpy() на 32- и 64-разрядных системах x86.Когда-нибудь они дойдут до SSE3 и SSE4.
Лет через 20.
Но это не точно.
memcpy не реализует те же самые инструкции, тем более с включёнными уровнями оптимизаций и встроенным в компилятор memcpy?
Это сильно зависит от компелятора и libc.
Для той же FreeBSD там внутри memcpy есть уже код для более свежих SSE/AVX и куча других оптимизаций.
Для различных мемкопий в лгптСИ трамплин есть, он прыгнет и на АВХ512ф если надо
>Уязвимость устранена в выпуске 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
> Уязвимость устранена в выпуске XZ Utils 5.8.1, а также перенесена в стабильные ветки 5.4 и 5.6.прааальна, перемещаем уязвимости в старые версии...
прикольная опечатка
А теперь сделай поиск *lzma*.dll на своей секурной винде.
А мне нраица! Ом-ном-ном! *усиленна кушоед кагтуз*
подскажите для сжатия что указывать чтобы максимум тредов использовать?
> Уязвимость вызвана обращением к уже освобождённой
> области памяти (use after free).Как же так вышло??
Неужели лучшие умы человечество опять допустили такую банальную ошибку!
А разве XZ Utils обязательно пишут именно лучшие умы? Или, всё таки, лучшие умы человечества код не пишут, а исследуют математически возможнось тех или иных алгоритмов. А кодят уже кодеры.
Понимаешь, это философская тема: баланс безопасность/свобода. Если ты ФРИ то тебя можно ЮЗ (поиметь). Задача в том чтобы быть свободным но при этом тебя не имели. Это не так просто как кажется
в генту обновился до 5.6.4-r1