Vulnerabilitatea în e2fsck la procesarea directoarelor special concepute

În utilitarul e2fsck furnizat ca parte a pachetului e2fsprogs, identificat vulnerabilitate (CVE-2019-5188), care vă permite să executați codul unui atacator atunci când verificați un sistem de fișiere care conține directoare special concepute. Vulnerabilitatea a fost confirmată în versiunile 1.43.3 până la 1.45.4. Vulnerabilitatea remediată în actualizare e2fsck 1.45.5. În kiturile de distribuție problema rămâne încă neremediată (Debian, Arch Linux, SUSE/openSUSE, Ubuntu, RHEL).

Vulnerabilitatea este cauzată de o eroare în funcția mutate_name() din fișierul rehash.c, care este utilizată la reconstruirea tabelelor hash asociate unui director, asigurându-se că toate fișierele din director sunt potrivite cu directorul. Coruperea structurii hash_entry asociată cu un director ar putea duce la un atacator să scrie date într-o zonă din afara buffer-ului alocat. Dacă mai multe fișiere cu același nume sunt identificate în tabelul hash ca fiind legate la un director, utilitarul e2fsck redenumește fișierele duplicate adăugând ~0, ~1 etc. la nume. Pentru a stoca temporar noul nume în timpul unei astfel de redenumiri, pe stivă este alocat un buffer de 256 de octeți.

Mărimea datelor de copiat este determinată de expresia „entry->name_len & 0xff”, dar valoarea entry->name_len este încărcată dintr-o structură de pe disc, mai degrabă decât calculată din dimensiunea reală a numelui. Dacă dimensiunea este zero, atunci indexul matricei ia valoarea -1 și sunt create condiții pentru depășirea întregului prin limita inferioară a buffer-ului (încărcare întreg) și suprascrierea altor date din stivă cu valoarea „~0”. Pentru sistemele pe 64 de biți, exploatarea vulnerabilității este evaluată ca improbabilă și nu necesită restricții privind dimensiunea stivei (ulimit -s nelimitat). Pentru sistemele pe 32 de biți, exploatarea este considerată posibilă, dar rezultatul depinde foarte mult de modul în care a fost compilat executabilul de către compilator.

Pentru a efectua un atac, un atacator trebuie să corupă datele într-un anumit mod în partiția cu sistemul de fișiere ext2, ext3 sau ext4. Deoarece această operațiune necesită privilegii de superutilizator, vulnerabilitatea reprezintă o amenințare atunci când utilitarul e2fsck scanează unități externe sau imagini FS primite extern.

Sursa: opennet.ru

Adauga un comentariu