CVE-2024-27316: Denial-of-Service-Schwachstelle durch Speichererschöpfung bei der HTTP/2-Header-Verarbeitung in nghttp2

nghttp2 ist eine grundlegende Open-Source-C-Bibliothek, die das HTTP/2-Protokoll implementiert. Sie ist weit verbreitet in die kritische Internet-Infrastruktur integriert, einschließlich Webservern (wie Apache und NGINX), Content Delivery Networks (CDNs), Load Balancern und Anwendungsproxys. Die Allgegenwärtigkeit dieser Bibliothek bedeutet, dass eine Schwachstelle weitreichende Auswirkungen auf das Web haben kann.

Diese Schwachstelle stellt ein hohes Risiko für jede Organisation dar, die öffentlich zugängliche Dienste betreibt, welche die nghttp2-Bibliothek verwenden. Ein erfolgreicher Exploit ermöglicht es einem nicht authentifizierten Remote-Angreifer, einen Denial of Service (DoS) auszulösen, der zum Absturz kritischer Webanwendungen und APIs führt. Die Komplexität des Angriffs ist gering und erfordert lediglich die Fähigkeit, speziell präparierten HTTP/2-Datenverkehr zu senden.

Diese Sicherheitslücke ist eine Variante der “HTTP/2 CONTINUATION Flood”-Angriffstechnik, die öffentlich bekannt gegeben wurde und unter Sicherheitsforschern aktiv diskutiert wird. Obwohl kein spezifisches öffentliches Exploit-Kit bestätigt wurde, deutet die Einfachheit des Angriffsvektors auf eine hohe Wahrscheinlichkeit der Weaponization und ein Potenzial für die Ausnutzung in realen Umgebungen hin. Alle mit dem Internet verbundenen Systeme, die eine anfällige Version der Bibliothek verwenden, müssen als unmittelbar gefährdet betrachtet werden.

Produktnghttp2
Datum06.12.2025 00:29:50

Technische Zusammenfassung

Die Hauptursache dieser Schwachstelle wird als CWE-400: Uncontrolled Resource Consumption klassifiziert. Sie resultiert aus der Art und Weise, wie die nghttp2-Bibliothek eingehende HTTP/2-HEADERS-Frames verarbeitet, die die auf dem Server konfigurierten Grenzwerte überschreiten.

Der technische Ablauf des Angriffs ist wie folgt:

  1. Der Angreifer baut eine HTTP/2-Verbindung zu einem Zielserver auf, auf dem eine anfällige Version der nghttp2-Bibliothek läuft.
  2. Der Angreifer sendet einen kontinuierlichen Strom von HEADERS-Frames und verletzt dabei absichtlich die vorkonfigurierten Flussgrenzwerte.
  3. Die Bibliothek erkennt den Verstoß korrekt und bereitet sich darauf vor, eine 413 Payload Too Large-Fehlermeldung zu senden. Um diese Antwort zu generieren, beginnt sie jedoch, die eingehenden Header, die übermäßig groß sind, zu puffern.
  4. Der Client des Angreifers vermeidet absichtlich das Lesen der Serverantwort. Dies hält die Verbindung offen und ermöglicht es dem Client, weiterhin eine unbegrenzte Anzahl von Headern zu senden.
  5. Der serverseitige Puffer innerhalb der nghttp2-Bibliothek wächst unbegrenzt, während er die Header des Angreifers in die Warteschlange stellt, was zu einer unkontrollierten Speicherzuweisung führt.
  6. Diese schnelle und kontinuierliche Speicherzuweisung erschöpft schließlich den gesamten für den Serverprozess verfügbaren Arbeitsspeicher, was dazu führt, dass er vom Betriebssystem beendet wird und ein definitiver Denial of Service entsteht.

Betroffene Versionen: Alle nghttp2-Versionen vor den korrigierenden Releases sind anfällig. Bitte konsultieren Sie die spezifischen Sicherheitshinweise der Anbieter für Produkte, die diese Bibliothek enthalten.

Korrektur-Versionen: Die Schwachstelle wurde in den neuesten Versionen der nghttp2-Bibliothek behoben. Administratoren sollten auf das neueste sichere Release aktualisieren, das von ihren jeweiligen Upstream-Anbietern bereitgestellt wird.

Empfehlungen

  • Sofortiges Patchen: Aktualisieren Sie alle Systeme, die die nghttp2-Bibliothek verwenden, auf eine korrigierte Version. Konsultieren Sie die Hinweise der Softwareanbieter (z. B. Webserver-Provider, Betriebssystem-Distributoren), um die entsprechenden Sicherheitsupdates zu erhalten.

  • Mitigationsmaßnahmen:

    • Falls ein sofortiges Update nicht möglich ist, ziehen Sie die Anwendung von Rate-Limiting-Regeln am Netzwerkrand (z. B. WAF, Load Balancer) in Betracht, um die Anzahl neuer HTTP/2-Verbindungen oder die Rate eingehender Daten von einer einzelnen IP-Adresse zu begrenzen.
    • Als letztes Mittel für kritische Systeme kann die vorübergehende Deaktivierung des HTTP/2-Protokolls und der Rückgriff auf HTTP/1.1 diese spezifische Bedrohung entschärfen, obwohl dies Auswirkungen auf die Leistung haben kann.

  • Threat Hunting und Überwachung:

    • Überwachen Sie die Speicherauslastung auf webseitig exponierten Servern auf plötzliche und unerklärliche Spitzen. Korrelieren Sie diese Spitzen mit dem Serverprozess, der den HTTP/2-Datenverkehr verarbeitet.
    • Analysieren Sie den Netzwerkverkehr auf eine anormal hohe Rate von HTTP/2-HEADERS-Frames, die von einer einzelnen IP-Adresse stammen, ohne zugehörige Daten oder einen Abschluss des Datenflusses.
    • Überprüfen Sie die Webserver- oder Anwendungsprotokolle auf Muster von wiederholten Verbindungen, die geöffnet, aber nie korrekt geschlossen werden.

  • Reaktion auf Vorfälle:

    • Wenn ein DoS-Angriff vermutet wird, implementieren Sie sofort eine vorübergehende Sperrung der betroffenen Quell-IP-Adressen über die Firewall oder WAF.
    • Bevor Sie den abgestürzten Dienst neu starten, erstellen Sie nach Möglichkeit einen Speicherabzug (Dump) des Prozesses, da dieser für die forensische Analyse nützlich sein kann.
    • Bewahren Sie Netzwerk-Paketmitschnitte und relevante Serverprotokolle zum Zeitpunkt des Vorfalls für weitere Untersuchungen auf.

  • Defense in Depth:

    • Stellen Sie sicher, dass kritische Dienste mit automatischen Neustartfunktionen konfiguriert sind (z. B. über systemd oder andere Dienstmanager), um Ausfallzeiten im Falle eines Absturzes zu minimieren.
    • Implementieren Sie Systeme zur Überwachung und Alarmierung der Ressourcennutzung, um eine frühzeitige Warnung bei Angriffen durch Speichererschöpfung zu erhalten.

[Callforaction-THREAT-Footer]

Leave a Reply

Your email address will not be published. Required fields are marked *