
Proof-of-concept-Exploit für CVE-2025-51495, einen Integerüberlauf in der mg_ws_cb-Funktion von Mongoose WebSocket, der zu speicherzugriff außerhalb der Grenzen und potenzieller Remotecodeausführung führt.
Ich möchte eine Sicherheitslücke melden, die in der neuesten Version von Mongoose (v7.17) identifiziert wurde. Das Problem befindet sich im WebSocket-Modul, genauer gesagt in der Funktion mg_ws_cb, die für die Verarbeitung eingehender WebSocket-Frames zuständig ist.
Die Funktion ist anfällig für einen Integer-Überlauf, der bei bestimmten manipulierten Eingaben zu einem Speicherzugriff außerhalb der Grenzen führen kann. Dieser Zustand könnte von einem entfernten Angreifer ausgenutzt werden, um Speicherkorruption zu verursachen oder die Anwendung zum Absturz zu bringen.
Da verschiedene Anbieter die WebSocket-Geschäftslogik unterschiedlich implementieren, könnte diese Sicherheitslücke möglicherweise zu einer Codeausführung aus der Ferne führen.
Details:
Die grundlegende Schwachstelle liegt in der Funktion mg_ws_cb:
Ein speziell manipuliertes WebSocket-Paket, das vom Client gesendet wird, kann hier ofs=0 setzen, was bei der Berechnung von ofs-1 zu einem Integer-Überlauf führt und einen Wert ergibt, der viel größer ist als die Länge von recv.buf.
In nachfolgenden WebSocket-Verarbeitungsfunktionen kann dieser buf verwendet werden, und da seine Länge größer als die tatsächliche Länge ist, kann dies zu einem Zugriff außerhalb der Grenzen oder zum Absturz des Programms führen.
Auslösung der Schwachstelle :
Zur Demonstration habe ich das vorhandene WebSocket-Beispiel namens „websocket-server“ im Projekt ausgewählt. Ich habe außer dem Hinzufügen von ASAN-Prüfungen während der Kompilierung keine Änderungen am Code vorgenommen.
Beim Ausführen des Programms und Senden eines bestimmten WebSocket-Pakets führt dies direkt zu einem Absturz.
PoC:
Ich habe auch den vorhandenen „websocket-client“ im Projekt als Client ausgewählt und nur die beiden Parameter in der fn-Funktion von main.c zum Senden der Anfrage geändert.
Das Ausführen des modifizierten Programms führt zum Absturz des Servers.