I værktøjet e2fsck, der leveres som en del af pakken , (), der giver mulighed for at udføre ondsindet kode under tjek af filsystemer, der indeholder specielt formaterede kataloger. Sårbarheden er bekræftet i versioner fra 1.43.3 til 1.45.4. Sårbarheden er blevet rettet i opdateringen . I distributionerne forbliver problemet endnu ikke løst (, , , , ).
Sårbarheden skyldes en fejl i funktionen mutate_name() fra filen rehash.c, der anvendes ved rekonstruktion af hash-tabeller relateret til kataloger, som sikrer matchning med kataloget af alle filer i det. Skade på den relaterede hash_entry-struktur kan føre til, at angriberen skriver data uden for den tildelte buffer. I tilfælde af at en hash-tabel forbundet med kataloget indeholder flere filer med samme navn, omdøber værktøjet e2fsck de gentagne filer ved at tilføje ~0, ~1 osv. til navnet. For midlertidig opbevaring af det nye navn under en sådan omdøbning tildeles en buffer på 256 bytes i stakken.
Størrelsen af de kopierede data bestemmes af udtrykket "entry->name_len & 0xff", men værdien entry->name_len indlæses fra strukturen på disken og beregnes ikke baseret på den faktiske størrelse af navnet. Hvis størrelsen er nul, vil arrayindekset få værdien -1, hvilket skaber betingelser for heltals-overløb (integer underflow) og overskrivning af andre data i stakken med værdien "~0". For 64-bit systemer vurderes udnyttelse af sårbarheden som usandsynlig og kræver ingen begrænsninger på stackstørrelse (ulimit -s unlimited). For 32-bit systemer anses udnyttelse for at være mulig, men resultatet afhænger stærkt af, hvordan det udførbare fil er blevet samlet af compileren.
For at udføre et angreb skal angriberen på en bestemt måde beskadige data i partitionen med FS ext2, ext3 eller ext4. Da denne operation kræver superbrugerrettigheder, udgør sårbarheden en trussel, når e2fsck-værktøjet tjekker eksterne lagringsenheder eller modtagne billeder af FS.
Kilde: opennet.ru
