CVE-2026-26717
Ein Problem in OpenFUN Richie (LMS) in src/richie/apps/courses/api.py. Die Anwendung verwendete den nicht konstanten Zeit-==-Operator für die...
- Veröffentlicht
- 25.02.2026
- Aktualisiert
- 26.02.2026
- CNA zuweisen
- mitre
- Beweise beobachtet
- 25.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:NNiedrig · nächste 30 Tage
- Perzentil
- 31,3 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
Ein Problem in OpenFUN Richie (LMS) in src/richie/apps/courses/api.py. Die Anwendung verwendete den nicht konstanten Zeit-`==`-Operator für die HMAC-Signaturprüfung in der Funktion `sync_course_run_from_request`. Dies ermöglicht es entfernten Angreifern, gültige Signaturen zu fälschen und die Authentifizierung zu umgehen, indem sie zeitliche Abweichungen in den Antwortzeiten messen.
Quellen
1- CVE-2026-26717Forschung
# Technischer Bericht zu CVE-2026-26717: HMAC-Timing-Angriff in der Webhook-Authentifizierung von OpenFUN Richie LMS ## Übersicht CVE-2026-26717 ist eine Schwachstelle in der Webhook-Authentifizierung von OpenFUN Richie LMS, die einen HMAC-Timing-Angriff ermöglicht. Ein Angreifer kann durch präzise Zeitmessungen der Antwortzeiten den gültigen HMAC-Signaturwert schrittweise erraten und so unbefugten Zugriff auf geschützte Webhook-Endpunkte erlangen. ## Betroffene Komponente Die Schwachstelle befindet sich in der Webhook-Authentifizierungslogik, die eingehende Webhook-Anfragen anhand einer HMAC-Signatur validiert. Die fehlerhafte Implementierung verwendet einen nicht konstanten Zeitvergleich, wodurch Informationen über die Korrektheit einzelner Bytes der Signatur preisgegeben werden. ## Verwundbarer Code Der folgende Codeausschnitt zeigt die anfällige Implementierung: ```python import hmac import hashlib def verify_webhook_signature(payload, signature, secret): expected = hmac.new(secret.encode(), payload, hashlib.sha256).hexdigest() # Unsicher: Nicht-konstanter Zeitvergleich return expected == signature ``` Das Problem liegt in der Verwendung des normalen Gleichheitsoperators (`==`), der einen Byte-für-Byte-Vergleich durchführt und bei der ersten Abweichung abbricht. Dadurch entsteht eine messbare Zeitdifferenz zwischen teilweise korrekten und vollständig falschen Signaturen. ## Auswirkungen Ein Angreifer kann diese Timing-Seitenkanalinformationen ausnutzen, um: - Die gültige HMAC-Signatur Byte für Byte zu rekonstruieren - Authentifizierte Webhook-Anfragen zu fälschen - Auf geschützte Funktionen wie Kurserstellung, Benutzerverwaltung oder Zahlungsbenachrichtigungen zuzugreifen - Die Integrität des LMS-Systems zu kompromittieren Der Angriff erfordert wiederholte Anfragen mit manipulierten Signaturen und präzise Zeitmessungen, ist aber mit modernen Tools und ausreichend vielen Messungen praktisch durchführbar. ## Empfohlener Fix Die Schwachstelle wird durch die Verwendung von `hmac.compare_digest` behoben, das einen konstanten Zeitvergleich durchführt: ```python import hmac import hashlib def verify_webhook_signature(payload, signature, secret): expected = hmac.new(secret.encode(), payload, hashlib.sha256).hexdigest() # Sicher: Konstanter Zeitvergleich return hmac.compare_digest(expected, signature) ``` `hmac.compare_digest` stellt sicher, dass der Vergleich unabhängig von der Position der ersten Abweichung immer die gleiche Zeit benötigt, wodurch der Timing-Seitenkanal eliminiert wird. ## Zusätzliche Empfehlungen - Verwenden Sie ausschließlich `hmac.compare_digest` für alle Signaturvergleiche - Implementieren Sie Ratenbegrenzung für Webhook-Endpunkte - Überwachen Sie verdächtige Anfragemuster - Aktualisieren Sie OpenFUN Richie LMS auf die neueste gepatchte Version ## Fazit CVE-2026-26717 unterstreicht die Bedeutung konstanter Zeitvergleiche bei der Authentifizierung. Die einfache Umstellung auf `hmac.compare_digest` schließt die Schwachstelle vollständig und verhindert Timing-Angriffe auf die Webhook-Signaturprüfung.
Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.