
Proof-of-Concept-Exploit für den FUSE-Informationsleck im Linux-Kernel (CVE-2024-44947), der die Offenlegung von Speicher über das Dateiende hinaus per mmap demonstriert und eine Analyse des Speicherabbilds enthält.
Beschreibung: Im Linux-Kernel wurde die folgende Schwachstelle behoben: fuse: Initialisieren von Seiteninhalten jenseits des Dateiendes vor dem Setzen von uptodate. fuse_notify_store() aktiviert im Gegensatz zu fuse_do_readpage() kein Page-Zeroing (da es verwendet werden kann, um partielle Seiteninhalte zu ändern). Daher muss fuse_notify_store() vorsichtiger sein und die Seiteninhalte (einschließlich der Teile der Seite, die jenseits des Dateiendes liegen) vollständig initialisieren, bevor die Seite als uptodate markiert wird. Der aktuelle Code kann Seiteninhalte jenseits des Dateiendes uninitialisiert lassen, wodurch diese uninitialisierten Seiteninhalte über mmap() für den Userspace sichtbar werden. Dies ist ein Informationsleck, betrifft jedoch nur Systeme, die init-on-alloc nicht aktiviert haben (über CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y oder den entsprechenden Kernel-Befehlszeilenparameter).
Erhöhter Speicherdump: Die Größe des Speicherdumps wurde auf 8 Seiten verdoppelt, was eine umfassendere Sicht auf potenzielle Lecks bietet.
Heuristik-Engine: Eine einfache Heuristik-Engine wurde eingeführt, die den ausgelagerten Speicher nach bestimmten Mustern durchsucht, wie z.B. "HTTP"-Header, "ELF"-Header und andere bekannte Datenstrukturen. Dies hilft, die durchgesickerten Daten effektiver zu identifizieren und zu kategorisieren.
Erweiterte FUSE-Operationen: Eine komplexere FUSE-Operation mit einer größeren Nutzlast wurde hinzugefügt, um die Wahrscheinlichkeit zu erhöhen, die Schwachstelle unter verschiedenen Bedingungen auszulösen.
Randomisierung und dynamische Elemente: Der PoC enthält Randomisierung in bestimmten Operationen, um verschiedene Szenarien zu simulieren und möglicherweise unterschiedliche Ergebnisse auszulösen, was den Exploit robuster macht.
Detaillierte Speicheranalyse: Der PoC führt nun eine detaillierte Analyse des Speicherdumps durch, gibt Hex-Werte aus und identifiziert potenzielle Datenlecks durch heuristisches Matching.
gcc -o fuse_poc_advanced fuse_poc_advanced.c
sudo ./fuse_poc_advanced
Dieser erweiterte PoC ist für fortgeschrittene Benutzer und Forscher konzipiert und bietet einen umfassenderen Rahmen für die Untersuchung und Ausnutzung der FUSE-Sicherheitslücke. Er umfasst dynamische Elemente, ausgefeilte Speicherverwaltung und heuristische Analysen, was ihn für detaillierte Sicherheitsanalysen und Ausnutzungsszenarien geeignet macht.