Vulnerabilitate în e2fsck, care se manifestă la prelucrarea unor directoare special formate

În utilitarul e2fsck, livrat ca parte a pachetului e2fsprogs, a fost identificată vulnerabilitatea (CVE-2019-5188), care permite executarea codului malițios în timpul verificării sistemului de fișiere care conține directoare special concepute. Prezența vulnerabilității a fost confirmată în versiunile de la 1.43.3 la 1.45.4. Vulnerabilitatea a fost remediată în actualizarea e2fsck 1.45.5. În distribuțiile problema rămâne nerezolvată (Debian, Arch Linux, SUSE/openSUSE, Ubuntu, RHEL).

Vulnerabilitatea este cauzată de o eroare în funcția mutate_name() din fișierul rehash.c, utilizată pentru reconstructia tabelelor hash asociate cu directoarele, care asigură corelarea cu directorul a tuturor fișierelor aflate în acesta. Coruperea structurii hash_entry asociate cu directorul poate duce la scrierea datelor atacatorului în zona din afara buffer-ului alocat. În cazul în care tabela hash conține mai multe fișiere cu același nume legate de director, utilitarul e2fsck redenumește fișierele repetate adăugând la nume ~0, ~1 și așa mai departe. Pentru stocarea temporară a noului nume în timpul acestei redenumiri, se alocă un buffer de 256 de octeți în stivă.

Dimensiunea datelor copiate este determinată de expresia "entry->name_len & 0xff", dar valoarea entry->name_len este încărcată din structura de pe disc, nu este calculată pe baza dimensiunii reale a numelui. Dacă dimensiunea este zero, indicele array-ului devine -1, creând condiții pentru o depășire a capacității prin sublimită a buffer-ului (integer underflow) și suprascrierea altor date în stivă cu valoarea "~0". Pentru sistemele de 64 de biți, exploatarea vulnerabilității este evaluată ca fiind improbabilă și necesită absența unor restricții pe dimensiunea stivei (ulimit -s unlimited). Pentru sistemele de 32 de biți, exploatarea este considerată posibilă, dar rezultatul depinde mult de modul în care a fost compilat fișierul executabil de către compilator.

Pentru a efectua un atac, atacatorul trebuie să corupă în mod special datele din secțiunea cu FS ext2, ext3 sau ext4. Deoarece această operațiune necesită privilegii de superuser, vulnerabilitatea reprezintă o amenințare atunci când utilitarul e2fsck verifică unități externe sau imagini FS obținute din exterior.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster