Source: cpp-httplib
Version: 0.18.7-1
Severity: important
Tags: security upstream
X-Debbugs-Cc: [email protected], Debian Security Team <[email protected]>

Hi,

The following vulnerabilities were published for cpp-httplib.

CVE-2025-66570[0]:
| cpp-httplib is a C++11 single-file header-only cross platform
| HTTP/HTTPS library. Prior to 0.27.0, a vulnerability allows
| attacker-controlled HTTP headers to influence server-visible
| metadata, logging, and authorization decisions. An attacker can
| inject headers named REMOTE_ADDR, REMOTE_PORT, LOCAL_ADDR,
| LOCAL_PORT that are parsed into the request header multimap via
| read_headers() in httplib.h (headers.emplace), then the server later
| appends its own internal metadata using the same header names in
| Server::process_request without erasing duplicates. Because
| Request::get_header_value returns the first entry for a header key
| (id == 0) and the client-supplied headers are parsed before server-
| inserted headers, downstream code that uses these header names may
| inadvertently use attacker-controlled values. Affected
| files/locations: cpp-httplib/httplib.h (read_headers,
| Server::process_request, Request::get_header_value,
| get_header_value_u64) and cpp-httplib/docker/main.cc (get_client_ip,
| nginx_access_logger, nginx_error_logger). Attack surface: attacker-
| controlled HTTP headers in incoming requests flow into the
| Request.headers multimap and into logging code that reads forwarded
| headers, enabling IP spoofing, log poisoning, and authorization
| bypass via header shadowing. This vulnerability is fixed in 0.27.0.


CVE-2025-66577[1]:
| cpp-httplib is a C++11 single-file header-only cross platform
| HTTP/HTTPS library. Prior to 0.27.0, a vulnerability allows
| attacker-controlled HTTP headers to influence server-visible
| metadata, logging, and authorization decisions. An attacker can
| supply X-Forwarded-For or X-Real-IP headers which get accepted
| unconditionally by get_client_ip() in docker/main.cc, causing access
| and error logs (nginx_access_logger / nginx_error_logger) to record
| spoofed client IPs (log poisoning / audit evasion). This
| vulnerability is fixed in 0.27.0.


If you fix the vulnerabilities please also make sure to include the
CVE (Common Vulnerabilities & Exposures) ids in your changelog entry.

For further information see:

[0] https://security-tracker.debian.org/tracker/CVE-2025-66570
    https://www.cve.org/CVERecord?id=CVE-2025-66570
[1] https://security-tracker.debian.org/tracker/CVE-2025-66577
    https://www.cve.org/CVERecord?id=CVE-2025-66577

Please adjust the affected versions in the BTS as needed.

Regards,
Salvatore

Reply via email to