Type-Confusion-Schwachstelle
Was ist Type-Confusion-Schwachstelle?
Type-Confusion-SchwachstelleMemory-Safety-Bug, bei dem Code auf ein Objekt mit einem Typ zugreift, der nicht zur tatsächlichen Allokation passt, und so Lese-, Schreib- oder Codeausführung erlaubt.
Eine Type-Confusion-Schwachstelle entsteht, wenn ein Programm Speicher über einen Zeiger oder eine Referenz liest oder schreibt, deren deklarierter Typ vom tatsächlichen Typ des Objekts abweicht. Auslöser sind häufig fehlerhafte Downcasts, falsche Polymorphie-Behandlung oder spekulative JIT-Optimierungen, die eine stabile Objektform annehmen, die der Angreifer ändern kann. Sobald die Laufzeit eine Struktur als falschen Typ behandelt, werden Methoden, vtables, Längenfelder und Inline-Daten fehlinterpretiert; der Angreifer erhält kontrollierte Read/Write-Primitive, die meist zu Codeausführung eskalieren. JavaScript-Engines (V8, JSC) und Browser-Renderer sind häufige Ziele, regelmäßig bei Pwn2Own. Schutz bieten starke Typsysteme, Laufzeitprüfungen, Sandboxing und speichersichere Sprachen.
● Beispiele
- 01
CVE-2021-30551: V8-Type-Confusion als 0-Day gegen Chrome ausgenutzt.
- 02
C++ static_cast statt dynamic_cast, was Schreibzugriffe in fremde Objekte erlaubt.
● Häufige Fragen
Was ist Type-Confusion-Schwachstelle?
Memory-Safety-Bug, bei dem Code auf ein Objekt mit einem Typ zugreift, der nicht zur tatsächlichen Allokation passt, und so Lese-, Schreib- oder Codeausführung erlaubt. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet Type-Confusion-Schwachstelle?
Memory-Safety-Bug, bei dem Code auf ein Objekt mit einem Typ zugreift, der nicht zur tatsächlichen Allokation passt, und so Lese-, Schreib- oder Codeausführung erlaubt.
Wie funktioniert Type-Confusion-Schwachstelle?
Eine Type-Confusion-Schwachstelle entsteht, wenn ein Programm Speicher über einen Zeiger oder eine Referenz liest oder schreibt, deren deklarierter Typ vom tatsächlichen Typ des Objekts abweicht. Auslöser sind häufig fehlerhafte Downcasts, falsche Polymorphie-Behandlung oder spekulative JIT-Optimierungen, die eine stabile Objektform annehmen, die der Angreifer ändern kann. Sobald die Laufzeit eine Struktur als falschen Typ behandelt, werden Methoden, vtables, Längenfelder und Inline-Daten fehlinterpretiert; der Angreifer erhält kontrollierte Read/Write-Primitive, die meist zu Codeausführung eskalieren. JavaScript-Engines (V8, JSC) und Browser-Renderer sind häufige Ziele, regelmäßig bei Pwn2Own. Schutz bieten starke Typsysteme, Laufzeitprüfungen, Sandboxing und speichersichere Sprachen.
Wie schützt man sich gegen Type-Confusion-Schwachstelle?
Schutzmaßnahmen gegen Type-Confusion-Schwachstelle kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Type-Confusion-Schwachstelle?
Übliche alternative Bezeichnungen: Falscher Cast, Typ-Mismatch-Bug.
● Verwandte Begriffe
- vulnerabilities№ 1193
Use-After-Free
Speicher-Sicherheitsfehler, bei dem ein Programm Speicher weiterhin nutzt, nachdem dieser bereits freigegeben wurde – ermöglicht oft Kontrolle über Objektzustand und Kontrollfluss.
- vulnerabilities№ 667
Speicherkorruption
Sammelbegriff für Schwachstellen, bei denen ein Programm außerhalb der vorgesehenen Speichergrenzen schreibt und so Typsicherheit, Kontrollfluss oder Datenintegrität untergräbt.
- appsec№ 564
JIT-Spray
Exploit-Technik, die Just-in-Time-Compiler missbraucht, um vom Angreifer gewählte ausführbare Bytes in legitim erzeugte ausführbare Speicherseiten zu platzieren.
- appsec№ 129
Browser-Sandbox
Isolationsschicht auf Betriebssystemebene, die Renderer- und Hilfsprozesse des Browsers eingrenzt, sodass kompromittierter Webcode weder Dateisystem noch andere Anwendungen erreicht.
- appsec№ 1075
Spekulative-Ausführung-Seitenkanal
Mikroarchitekturelle Schwachstellenklasse, bei der CPUs Daten über Caches und Predictors leaken, nachdem sie Befehle spekulativ entlang nicht-eingeschlagener Pfade ausgeführt haben.
- vulnerabilities№ 399
Exploit
Code, Daten oder Technik, die eine Schwachstelle ausnutzt, um unbeabsichtigtes Verhalten wie Codeausführung, Privilegieneskalation oder Informationsabfluss zu erzwingen.