Kwetsbaarheid in e2fsck bij het verwerken van speciaal ontworpen mappen

In het e2fsck-hulpprogramma dat als onderdeel van het pakket wordt geleverd e2fsprogs, geïdentificeerd kwetsbaarheid (CVE-2019-5188), waarmee u de code van een aanvaller kunt uitvoeren bij het controleren van een bestandssysteem dat speciaal ontworpen mappen bevat. De kwetsbaarheid werd bevestigd in releases 1.43.3 tot 1.45.4. Kwetsbaarheid opgelost in update e2fsck 1.45.5. Bij distributiekits is het probleem nog steeds niet opgelost (Debian, Arch Linux, SUSE/openSUSE, Ubuntu, RHEL).

Het beveiligingslek wordt veroorzaakt door een fout in de functie mute_name() in het bestand rehash.c, dat wordt gebruikt bij het opnieuw opbouwen van de hashtabellen die aan een map zijn gekoppeld, zodat alle bestanden in de map overeenkomen met de map. Corruptie van de hash_entry-structuur die aan een map is gekoppeld, kan ertoe leiden dat een aanvaller gegevens naar een gebied buiten de toegewezen buffer schrijft. Als meerdere bestanden met dezelfde naam in de hashtabel worden geïdentificeerd als zijnde gekoppeld aan een map, hernoemt het hulpprogramma e2fsck de dubbele bestanden door ~0, ~1, etc. aan de naam toe te voegen. Om de nieuwe naam tijdens een dergelijke hernoeming tijdelijk op te slaan, wordt een buffer van 256 bytes groot op de stapel toegewezen.

De grootte van de te kopiëren gegevens wordt bepaald door de uitdrukking "entry->name_len & 0xff", maar de waarde van entry->name_len wordt geladen vanuit een structuur op schijf in plaats van berekend op basis van de werkelijke grootte van de naam. Als de grootte nul is, neemt de array-index de waarde -1 aan en worden er voorwaarden gecreëerd voor een integer-overflow via de ondergrens van de buffer (integer-underflow) en het overschrijven van andere gegevens op de stapel met de waarde “~0”. Voor 64-bits systemen wordt misbruik van de kwetsbaarheid als onwaarschijnlijk beoordeeld en zijn er geen beperkingen op de stapelgrootte vereist (ulimit -s unlimited). Voor 32-bits systemen wordt exploitatie mogelijk geacht, maar het resultaat is sterk afhankelijk van de manier waarop het uitvoerbare bestand door de compiler is gecompileerd.

Om een ​​aanval uit te voeren moet een aanvaller de gegevens op een bepaalde manier beschadigen in de partitie met het ext2-, ext3- of ext4-bestandssysteem. Omdat voor deze bewerking superuser-rechten vereist zijn, vormt het beveiligingslek een bedreiging wanneer het hulpprogramma e2fsck externe schijven of extern ontvangen FS-images scant.

Bron: opennet.ru

Voeg een reactie