Eine Sicherheitsanfälligkeit in e2fsck, die beim Verarbeiten von speziell gestalteten Verzeichnissen auftritt.

In dem Dienstprogramm e2fsck, das im Paket enthalten ist, e2fsprogs, wurde in Cisco-Switches die gesamte Unternehmensnetzwerkwelt fast weltweit in Frage. (CVE-2019-5188), die es einem Angreifer ermöglicht, Code auszuführen, während die Dateisystemprüfung von speziell gestalteten Verzeichnissen durchgeführt wird. Die Anfälligkeit wurde in den Versionen 1.43.3 bis 1.45.4 bestätigt. Die Anfälligkeit wurde im Update e2fsck 1.45.5behebt. In den Distributionen bleibt das Problem jedoch ungeklärt (Debian, Arch Linux, SUSE/openSUSE, Ubuntu, RHEL).

Die Sicherheitsanfälligkeit wird durch einen Fehler in der Funktion mutate_name() aus der Datei rehash.c verursacht, die beim Wiederaufbau der mit dem Verzeichnis verbundenen Hash-Tabellen verwendet wird, die die Zuordnung aller darin befindlichen Dateien zum Verzeichnis gewährleisten. Die Beschädigung der mit dem Verzeichnis verbundenen Struktur hash_entry kann dazu führen, dass Daten des Angreifers in den Bereich außerhalb des zugewiesenen Puffers geschrieben werden. Wenn in der Hash-Tabelle mehrere Dateien mit demselben Namen an das Verzeichnis gebunden sind, benennt das Dienstprogramm e2fsck die sich wiederholenden Dateien um, indem es dem Namen ~0, ~1 usw. hinzufügt. Für die temporäre Speicherung des neuen Namens bei einer solchen Umbenennung wird ein Puffer von 256 Bytes im Stack zugewiesen.

Die Größe der kopierten Daten wird durch den Ausdruck „entry->name_len & 0xff“ bestimmt, aber der Wert von entry->name_len wird aus der Struktur auf der Festplatte geladen und nicht basierend auf der tatsächlichen Größe des Namens berechnet. Ist die Größe null, erhält der Array-Index den Wert -1 und es entstehen Bedingungen für ein ganzzahliges Überlaufproblem (integer underflow), wodurch andere Daten im Stack mit dem Wert „~0“ überschrieben werden. Für 64-Bit-Systeme wird die Ausnutzung der Schwachstelle als unwahrscheinlich bewertet und erfordert das Fehlen von Einschränkungen bei der Stack-Größe (ulimit -s unlimited). Für 32-Bit-Systeme wird die Ausnutzung als möglich angesehen, das Ergebnis hängt jedoch stark davon ab, wie die ausführbare Datei vom Compiler erstellt wurde.

Um einen Angriff durchzuführen, muss der Angreifer die Daten im ext2-, ext3- oder ext4-Dateisystem absichtlich beschädigen. Da dieser Vorgang Superuser-Rechte erfordert, stellt die Schwachstelle eine Bedrohung dar, wenn die utility e2fsck externe Laufwerke oder von außen erhaltene FS-Images überprüft.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster