CVE-2026-77341
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
cpp-httplib w wersji 0.49.0 nie waliduje nazw i wartości nagłówków w trailerach odpowiedzi chunked, co pozwala na wstrzyknięcie CRLF i podział odpowiedzi HTTP. Aplikacje umieszczające dane sterowane przez atakującego w trailerach mogą wysyłać kontrolowane przez atakującego CRLF. Problem naprawiono w wersji 0.50.0.
Ocena ryzyka
Atakujący może sfałszować nagłówki odpowiedzi lub wstrzyknąć drugą odpowiedź, co może prowadzić do zatrucia pamięci podręcznej, przejęcia sesji lub innych ataków typu response splitting.
Rekomendacja
Zaleca się natychmiastową aktualizację biblioteki cpp-httplib do wersji 0.50.0 lub nowszej.
Inne podatności w cpp-httplib
Zobacz wszystkie- CVE-2026-22776Wysokie
cpp-httplib przed wersją 0.30.1 zawiera podatność na atak DoS związaną z niebezpiecznym obsługiwaniem skompresowanych treści żądań HTTP. Biblioteka sprawdza maksymalny rozmiar ładunku na podstawie skompresowanych danych, ale nie ogranicza rozmiaru zdekompresowanych danych przechowywanych w pamięci.
- CVE-2026-21428Wysokie
cpp-httplib przed wersją 0.30.0 nie sprawdza znaków CR i LF w nagłówkach dostarczanych przez użytkownika, co pozwala na wstrzykiwanie dodatkowych nagłówków i modyfikację treści żądania. Może to prowadzić do ataku SSRF, szczególnie w połączeniu z serwerami obsługującymi pipelining HTTP/1.1. Wersja 0.30.0 naprawia ten problem.
- CVE-2026-45372Krytyczne
Biblioteka cpp-httplib przed wersją 0.44.0 nieprawidłowo waliduje nagłówki HTTP, co pozwala na wstrzyknięcie znaków nowej linii przez zakodowane wartości nagłówków.
- CVE-2025-66570Krytyczne
cpp-httplib przed wersją 0.27.0 zawiera podatność, która pozwala atakującemu kontrolować nagłówki HTTP wpływające na metadane widoczne dla serwera, logowanie i decyzje autoryzacyjne. Atakujący może wstrzyknąć nagłówki REMOTE_ADDR, REMOTE_PORT, LOCAL_ADDR, LOCAL_PORT, które są parsowane do multimapy nagłówków żądania, a serwer później dodaje własne metadane wewnętrzne bez usuwania duplikatów, co może prowadzić do użycia wartości kontrolowanych przez atakującego.
- CVE-2026-77358Wysokie
cpp-httplib to biblioteka HTTP/HTTPS w C++ tylko z nagłówkami. W wersjach od 0.33.0 do 0.50.0 klient WebSocket z obsługą TLS zwalnia sesję TLS przed zamknięciem WebSocket, który nadal jej używa, co powoduje użycie po zwolnieniu (use-after-free). Problem został naprawiony w wersji 0.50.1.
- CVE-2026-54919Wysokie
Biblioteka cpp-httplib w wersjach od 0.31.0 do 0.46.1 (dla backendu Mbed TLS) oraz od 0.33.0 do 0.46.1 (dla backendu wolfSSL) pomija walidację łańcucha certyfikatów podczas połączeń HTTPS z adresem IP zamiast nazwy domeny. Podatność umożliwia atakującemu typu man-in-the-middle przedstawienie spreparowanego certyfikatu i przechwycenie lub modyfikację ruchu.
- CVE-2026-46527Wysokie
cpp-httplib to biblioteka HTTP/HTTPS w C++11. Przed wersją 0.44.0, gdy serwer używa Server::set_trusted_proxies() z niepustą listą zaufanych proxy, atakujący może wysłać żądanie HTTP z nagłówkiem X-Forwarded-For, którego wartość nie zawiera prawidłowych segmentów IP. Kod wywołuje get_client_ip(), który wywołuje front() na pustym std::vector, co jest niezdefiniowanym zachowaniem w C++. Na typowych implementacjach objawia się to nieprawidłowym zakończeniem procesu (odmowa usługi).
- CVE-2026-45352Średnie
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.
- CVE-2026-34441Średnie
cpp-httplib jest podatne na przemycanie żądań HTTP (HTTP Request Smuggling). Serwer nie konsumuje treści żądania GET, a na połączeniach keep-alive nieprzeczytane bajty są interpretowane jako nowe żądanie.
Oryginalny opis (angielski, źródło NVD)
cpp-httplib is a C++ header-only HTTP/HTTPS library. In version 0.49.0, the chunked-response trailer output path writes trailer header names and values directly to the socket without validating them, allowing CRLF sequences in a trailer field to inject additional headers or split the HTTP response. Unlike every other header-writing path in the library, the trailer-writing code applies none of the field-name and field-value checks that reject carriage return and line feed, so an application that places attacker-influenced data into a chunked response trailer emits attacker-controlled CRLF onto the wire. This enables HTTP response splitting, letting an attacker forge response headers or inject a second response. This issue is fixed in version 0.50.0.

