„`html
Zusammenfassung
Die Perl-Bibliothek Mojolicious::Plugin::Web::Auth::OAuth2 in Version 0.17 und älter weist eine kritische Schwachstelle auf. Das Modul verwendet standardmäßig einen unsicheren State-Parameter für OAuth2-Authentifizierungsprozesse. Die Generierung basiert auf vorhersehbaren Quellen geringer Entropie, was zu Session-Hijacking durch CSRF-Angriffe führen kann.
Betroffene Systeme
Alle Installationen von Mojolicious::Plugin::Web::Auth::OAuth2 bis einschließlich Version 0.17 sind betroffen. Dies umfasst Perl-basierte Webanwendungen, die dieses Modul für OAuth2-Authentifizierung einsetzen und keinen benutzerdefinierten State-Generator implementieren.
Technische Details
Der OAuth2-State-Parameter dient als CSRF-Schutz und sollte kryptographisch sicher und unvorhersehbar sein. Die verwundbare Implementierung nutzt für die Hash-Berechnung:
- Die Epoch-Zeit (über HTTP Date-Header preisgegeben)
- Perls rand()-Funktion mit niedriger Entropie
- SHA-1 als Hashing-Algorithmus
Ein Angreifer kann durch die bekannte Epoch-Zeit und das schwache Zufallselement die gültigen State-Parameter rekonstruieren. Dies ermöglicht die Übernahme von Benutzersessions durch manipulierte OAuth2-Callback-Requests.
Empfohlene Massnahmen
- Sofortige Mitigation: Implementieren Sie einen benutzerdefinierten, kryptographisch sicheren State-Generator mittels
Crypt::Randomoder vergleichbaren Lösungen - Update abwarten: Überwachen Sie das Projekt auf Sicherheits-Patches
- Code-Review: Prüfen Sie vorhandene OAuth2-Implementierungen auf State-Parameter-Generierung
- SameSite-Cookies: Verstärken Sie den CSRF-Schutz durch SameSite-Cookie-Attribute
Bewertung
CVSS v3.1: 9.1 (Critical)
Die kritische Bewertung ist berechtigt: Die Schwachstelle ermöglicht Session-Hijacking mit Netzwerkzugriff, erfordert minimale Privilegien und hat hohe Auswirkungen auf die Vertraulichkeit und Integrität von Benutzerdaten.
„`