„`html
Zusammenfassung
Die Schwachstelle CVE-2026-11404 betrifft Cesanta Mongoose in Versionen vor 7.22. Ein Out-of-Bounds-Read in der integrierten TLS-Serverfunktion mg_tls_server_recv_hello() ermöglicht es unauthentifizierten Angreifern, durch das Versenden einer manipulierten ClientHello-Nachricht eine Denial-of-Service-Bedingung hervorzurufen. Die Schwachstelle hat einen CVSS-Score von 7.5 und wird als „High“ eingestuft.
Betroffene Systeme
- Cesanta Mongoose < 7.22
- Services mit MG_TLS_BUILTIN Flag aktiviert
- HTTPS-Services basierend auf Mongoose
- MQTTS-Services (MQTT über TLS)
- WSS-Services (WebSocket Secure)
Technische Details
Die Verwundbarkeit liegt in der unsicheren Verarbeitung des session_id_len-Feldes aus dem TLS ClientHello-Paket. Die Funktion mg_tls_server_recv_hello() verwendet diesen vom Angreifer kontrollierten Wert als direkten Puffer-Index, ohne vorher zu überprüfen, ob der angegebene Wert die Größe des empfangenen Datenpuffers nicht überschreitet.
Ein Angreifer kann einen manipulierten ClientHello mit einer überdimensionierten session_id_len versenden. Dies führt zu einem Out-of-Bounds-Read, bei dem auf Speicherbereiche außerhalb des zugeordneten Puffers zugegriffen wird. Dies resultiert typischerweise in einem Crash des betroffenen Services.
Der Angriffsvektor ist netzwerkbasiert und erfordert keine Authentifizierung. Eine einzelne crafted Nachricht reicht aus, um den Service zum Absturz zu bringen.
Empfohlene Massnahmen
- Sofortige Aktualisierung: Update auf Cesanta Mongoose 7.22 oder aktueller durchführen
- Netzwerk-Segmentierung: TLS-Services nur für vertrauenswürdige Netzwerke exponieren
- Rate Limiting: ClientHello-Requests monitoren und begrenzen
- Monitoring: Unexpected Crashes und Fehler in TLS-Handshakes überwachen
- Workaround: MG_TLS_BUILTIN deaktivieren und externen TLS-Stack nutzen (temporär)
Bewertung
Mit CVSS 7.5 stellt diese Schwachstelle ein erhebliches Risiko dar. Die fehlende Authentifizierungsanforderung und die einfache Ausnutzbarkeit erhöhen die Kritikalität. Ein Patch ist derzeit nicht vorhanden; Aktualisierung ist die einzige vollständige Lösung.
„`