CVE-2025-4919: Korruption über... Notiz

CVE-2025-4919: Korruption über Mathematischen Raum in Mozilla Firefox

Manfred Paul nutzte eine Schwachstelle (CVE-2025-4919, ZDI-25-291) im IonMonkey-JavaScript-JIT-Compiler von Firefox während des Pwn2Own Berlin 2025 aus. Die Schwachstelle befand sich in der ExtractLinearSum-Funktion, die für die Vereinfachung linearer Ausdrücke verwendet wird. Diese Funktion behandelte den Modulo-Mathematikraum inkorrekt, was zu Problemen bei den Grenzprüfungen führte. Die TryEliminateBoundsCheck-Funktion, die ExtractLinearSum nutzte, kombinierte Grenzprüfungen ohne Berücksichtigung möglicher ganzzahliger Überläufe. Dieser Fehler ermöglichte es, Grenzprüfungen in großen typisierten Arrays zu umgehen. Das Ausnutzen dieser Schwachstelle erforderte die Erstellung eines großen typisierten Arrays und die Manipulation von Indizes, um einen out-of-bounds-Lese- oder Schreibzugriff auszulösen. Der Exploit verwendete bitweise Operationen, um Zwangsadditionen zu erzwingen und die Grenzprüfungsbeseitigung zu täuschen. Ein BigInt wurde verwendet, um Compiler-Optimierungen zu verhindern, die den Exploit sonst behindert hätten. Die Wurzel der Schwachstelle liegt in der inkonsistenten Handhabung des Mathematikraums innerhalb der verschiedenen Aufrufstellen der ExtractLinearSum-Funktion. Ähnliche Schwachstellen könnten in anderen Teilen des Ion-Compilers existieren, die ExtractLinearSum für Schleifenanalyse verwenden. Mozilla patchte die Schwachstelle in Firefox 138.0.4. Der Exploit demonstrierte die Gefahr unkontrollierter ganzzahliger Operationen in JIT-Compilern.
CdXz5zHNQW_sqeUCNKfYs.jpeg