Katalog CVE

CVE-2026-45352

ŚrednieCVSS 5.3
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.33%

Percentyl 25 - wyżej niż 25% wszystkich znanych CVE

Streszczenie

cpp-httplib przed wersją 0.43.4 zawiera podatność związaną z ujemnym rozmiarem fragmentu w kodowaniu Transfer-Encoding chunked. Funkcja ChunkedDecoder::read_payload parsuje pole chunk-size za pomocą std::strtoul(), które akceptuje znak minus, powodując zawinięcie do wartości bliskiej maksymalnej. Biblioteka odrzuca tylko wynik -1, ale inne ujemne wartości, jak -2, przechodzą walidację, co prowadzi do nieograniczonej alokacji pamięci i awarii procesu.

Ocena ryzyka

Atakujący może spowodować awarię serwera HTTP poprzez wysłanie spreparowanego żądania z ujemnym rozmiarem fragmentu.

Rekomendacja

Zaktualizuj cpp-httplib do wersji 0.43.4 lub nowszej.

Inne podatności w cpp-httplib

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to 0.43.4, negative chunk-size in chunked Transfer-Encoding causes unbounded memory allocation and process crash. The ChunkedDecoder::read_payload function in cpp-httplib (httplib.h) parses the chunk-size field of HTTP chunked transfer encoding using std::strtoul(). Per the C standard (§7.22.1.4), strtoul silently accepts a leading minus sign, performing unsigned wrap-around: strtoul("-2", …, 16) returns ULONG_MAX − 1 (0xFFFFFFFFFFFFFFFE). The library's only guard (line 12833) rejects ULONG_MAX (the result of "-1"), but any other negative value such as "-2" passes validation. The resulting near-maximum value is stored in chunk_remaining and controls how many bytes the server's read loop consumes from the network. This vulnerability is fixed in 0.43.4.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS