
# Dokumentation zu CVE-2023-31606: ReDoS-Schwachstelle in der `sanitize_html`-Funktion des Redcloth-Gems ## Übersicht CVE-2023-31606 beschreibt eine **Regular Expression Denial of Service (ReDoS)**-Schwachstelle in der `sanitize_html`-Funktion des `Redcloth`-Gems. Diese Schwachstelle ermöglicht es einem Angreifer, durch speziell gestaltete Eingaben eine übermäßige CPU-Auslastung zu verursachen, was zu einem Denial-of-Service (DoS) führen kann. ## Root-Cause-Analyse Die Schwachstelle entsteht durch eine **katastrophale Rückspulung (catastrophic backtracking)** in der regulären Ausdrücke, die von der `sanitize_html`-Funktion verwendet werden. Bestimmte Eingabemuster können dazu führen, dass die Regex-Engine exponentiell viele Backtracking-Schritte ausführt, was die Verarbeitungszeit drastisch erhöht. ## CVSS-Score - **CVSS v3.1:** 7.5 (Hoch) - **Angriffsvektor:** Netzwerk (AV:N) - **Angriffskomplexität:** Gering (AC:L) - **Keine Authentifizierung erforderlich** (PR:N) - **Keine Benutzerinteraktion erforderlich** (UI:N) - **Auswirkung auf Verfügbarkeit:** Hoch (A:H) ## OWASP-Referenzen Diese Schwachstelle fällt unter die folgenden OWASP-Kategorien: - **OWASP Top 10 – A03:2021 – Injection:** ReDoS kann als eine Form der Injection-Angriffe betrachtet werden, bei der bösartige Eingaben in reguläre Ausdrücke eingeschleust werden. - **OWASP ASVS – V5.3.1:** Validierung von Eingaben, um ReDoS-Anfälligkeiten zu vermeiden. ## Bildungszweck Diese Dokumentation dient ausschließlich **Bildungszwecken**, um Entwickler und Sicherheitsexperten über die Risiken von ReDoS-Schwachstellen zu sensibilisieren und Best Practices zur Vermeidung solcher Schwachstellen zu vermitteln.
In der Funktion sanitize_html des redcloth-Gems >= v4.0.0 wurde eine ReDoS-Schwachstelle (Regular Expression Denial of Service) entdeckt. Diese Schwachstelle ermöglicht es Angreifern, einen Denial of Service (DoS) zu verursachen, indem sie einen präparierten Payload bereitstellen.
Laut OWASP ist der Regular Expression Denial of Service (ReDoS) ein Denial-of-Service-Angriff, der die Tatsache ausnutzt, dass die meisten Implementierungen regulärer Ausdrücke extreme Situationen erreichen können, die dazu führen, dass sie sehr langsam arbeiten (exponentiell abhängig von der Eingabegröße). Ein Angreifer kann dann ein Programm, das einen regulären Ausdruck verwendet, in diese extremen Situationen bringen und es für sehr lange Zeit aufhängen lassen. Weitere Informationen finden Sie unter OWASP ReDoS.
/<(/)([A-Za-z]\w*)([^>]?)(\s?/?)>/
Der letzte Commit im Repository erfolgte am 2019-03-28, und die letzte Version v4.3.2 wurde am 2016-05-24 veröffentlicht. Das Projekt wird nicht mehr gepflegt.