„`html
Zusammenfassung
Die Schwachstelle CVE-2026-37737 betrifft sanic-cors in Version 2.2.0 und älteren Versionen. Ein fehlerhaft implementierter regulärer Ausdruck in der Funktion try_match() ermöglicht es Angreifern, CORS-Origin-Whitelists zu umgehen. Durch die Registrierung einer speziell konstruierten Domain können authentifizierte Cross-Origin-Anfragen unberechtigt durchgeführt werden.
Betroffene Systeme
Betroffene Versionen:
- sanic-cors bis einschließlich Version 2.2.0
- Alle Installationen, die sanic-cors für CORS-Schutz nutzen
Besonders kritisch sind Systeme mit authentifizierten APIs und sensiblen Cross-Origin-Operationen.
Technische Details
Die Verwundbarkeit liegt in der try_match()-Funktion in sanic_cors/core.py. Der reguläre Ausdruck nutzt re.match(), welches nur vom Stringanfang prüft, jedoch ohne End-Anker ($) implementiert ist.
Beispiel des Fehlers:
Ein vertrauter Origin „https://trusted.example.com“ wird gegen „https://trusted.example.com.attacker.com“ geprüft. Ohne End-Anker passt der Regex, da der Anfang übereinstimmt.
Ein Angreifer kann eine Domain wie „trusted-example-com-attacker.de“ registrieren und erhält damit Zugriff auf geschützte Ressourcen, als wäre dies eine erlaubte Origin.
Empfohlene Massnahmen
- Sofortige Massnahmen: Upgrade auf eine gepatchte Version (sofern verfügbar) durchführen
- Workaround: Manuelle Validierung von Origins implementieren mit vollständiger String-Matching-Logik
- Monitoring: Logs auf verdächtige Cross-Origin-Anfragen von unerwarteten Domains analysieren
- Netzwerk: WAF-Regeln zur Origin-Validierung einführen
Bewertung
CVSS Score: 6.5 (Medium)
Angriffsvektor: Network
Status: Kein Patch verfügbar
Die Schwachstelle ermöglicht betrachtliche Sicherheitsverletzungen bei mangelhafter Defensiv-Programmierung. Sofortige Massnahmen sind erforderlich.
„`