Sicherheitsanfälligkeit in LibJS, die die Ausführung von Code beim Öffnen einer Seite im Browser Ladybird ermöglicht

Im JavaScript-Engine LibJS, die im Webbrowser Ladybird verwendet wird, wurde eine Sicherheitsanfälligkeit (CVE-2025-47154) entdeckt, die die Ausführung von eigenen Code im System bei der Verarbeitung von speziell gestalteten JavaScript-Code ermöglicht. Die Schwachstelle wird durch die Freigabe von Speicher im Vektor m_argument_values_buffer verursacht, auf den ein Zeiger in der Struktur arguments_list verweist, was zu einem Zugriff auf bereits freigegebenen Speicherbereich führte. Ein funktionierender Exploit-Prototyp ist verfügbar.

Der Forscher, der das Problem entdeckte, führte Fuzzing-Tests an LibJS durch, bei denen 10 Abstürze dokumentiert wurden. Die Analyse eines der Abstürze zeigte, dass das Problem bei der Verarbeitung von JavaScript-Code ausgenutzt werden kann. Die Sicherheitsanfälligkeit erlaubte das Lesen und Schreiben in beliebige Speicherbereiche des Prozesses. Die Ausführung des Codes wurde im Exploit durch Ersetzen des Rückgabewertes aus der Rendering-Funktion organisiert. Mithilfe von Return-Oriented Programming (ROP) wurde eine Kette zur Ausführung des Systemaufrufs execve zur Start eines externen Programms gebildet.

Der Browser Ladybird wird von Andreas Kling entwickelt, der früher bei Nokia arbeitete und an der Entwicklung von KHTML mitwirkte und danach bei Apple einer der Entwickler von Safari war. Aktuell befindet sich Ladybird in der Pre-Alpha-Phase, die nur für Entwickler verwendbar ist. Ursprünglich wurde das Projekt als Anwendung für das Betriebssystem SerenityOS entwickelt, wurde jedoch im vergangenen Sommer zu einem eigenständigen Projekt und erhielt eine Spende von 1 Million Dollar. Der Browser ist in C++ geschrieben (eine Umstellung auf Swift ist geplant) und wird unter der BSD-Lizenz vertrieben. Das Projekt entwickelt eine eigene Engine LibWeb, einen JavaScript-Interpreter LibJS und zugehörige Bibliotheken.

Quelle: opennet.ru

60GB SSD 8Gb DDR4