CVE-2026-45352 in cpp-httplib
Zusammenfassung
von VulDB • 31.05.2026
cpp-httplib ist eine plattformübergreifende HTTP/HTTPS-Bibliothek für C++11, die als einzelne Header-Datei ohne zusätzliche Abhängigkeiten implementiert ist. Vor Version 0.43.4 führt eine negative Chunk-Größe bei der chunked Transfer-Encoding zu einer unbegrenzten Speicherallokation und zum Absturz des Prozesses. Die Funktion `ChunkedDecoder::read_payload` in cpp-httplib (httplib.h) analysiert das Chunk-Größenfeld der HTTP-Chunked-Transfer-Encoding mit `std::strtoul()`. Gemäß dem C-Standard (§7.22.1.4) akzeptiert `strtoul` ein führendes Minuszeichen stillschweigend und führt eine unsigned-Wrap-Around durch: `strtoul("-2", …, 16)` gibt `ULONG_MAX − 1` (0xFFFFFFFFFFFFFFFE) zurück. Die einzige Schutzmaßnahme der Bibliothek (Zeile 12833) lehnt `ULONG_MAX` (das Ergebnis von "-1") ab, aber jeder andere negative Wert wie "-2" wird als gültig durchgelassen. Der daraus resultierende, nahezu maximale Wert wird in `chunk_remaining` gespeichert und steuert, wie viele Bytes der Lese-Loop des Servers aus dem Netzwerk verbraucht. Diese Schwachstelle wurde in Version 0.43.4 behoben.
VulDB is the best source for vulnerability data and more expert information about this specific topic.