CVE-2026-21428
cpp-httplib has CRLF injection in http headers
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.7
cpp-httplib has CRLF injection in http headers
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.
- Record
CVE-2026-21428- CVSS 4.0
- 7.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:P - Weakness
- CWE-93
- Updated
- 2026-11-02
EUVDEUVD-2026-0026
7.7
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.
- Record
EUVD-2026-0026- CVSS 4.0
- 7.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:P - Updated
- 2026-11-02
NVD
7.7
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.
- Record
CVE-2026-21428- CVSS 4.0
- 7.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-93
- Updated
- 2026-11-02
OSV
7.7
cpp-httplib has CRLF injection in http headers
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.
- Record
CVE-2026-21428- CVSS 4.0
- 7.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:P - Weakness
- CWE-93
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-21428
7.5
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines. This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.
- Record
DEBIAN-CVE-2026-21428- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVOESA-2026-1158
8.7
cpp-httplib security update
A C++11 single-file header-only cross platform HTTP/HTTPS library. It's extremely easy to setup. Just include httplib.h file in your code!
Security Fix(es):
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.(CVE-2026-21428)
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.1, a Denial of Service (DoS) vulnerability exists due to the unsafe handling of compressed HTTP request bodies (Content-Encoding: gzip, br, etc.). The library validates the payload_max_length against the compressed data size received from the network, but does not limit the size of the decompressed data stored in memory. An attacker can exploit this by sending a compressed payload with a very high compression ratio (e.g., a zip bomb), which upon decompression consumes excessive memory, leading to service unavailability.(CVE-2026-22776)
- Record
OESA-2026-1158- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
Show 7 moreShow less
OSVOESA-2026-1159
8.7
cpp-httplib security update
A C++11 single-file header-only cross platform HTTP/HTTPS library. It's extremely easy to setup. Just include httplib.h file in your code!
Security Fix(es):
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.(CVE-2026-21428)
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.1, a Denial of Service (DoS) vulnerability exists due to the unsafe handling of compressed HTTP request bodies (Content-Encoding: gzip, br, etc.). The library validates the payload_max_length against the compressed data size received from the network, but does not limit the size of the decompressed data stored in memory. An attacker can exploit this by sending a compressed payload with a very high compression ratio (e.g., a zip bomb), which upon decompression consumes excessive memory, leading to service unavailability.(CVE-2026-22776)
- Record
OESA-2026-1159- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-1160
8.7
cpp-httplib security update
A C++11 single-file header-only cross platform HTTP/HTTPS library. It's extremely easy to setup. Just include httplib.h file in your code!
Security Fix(es):
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.(CVE-2026-21428)
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.1, a Denial of Service (DoS) vulnerability exists due to the unsafe handling of compressed HTTP request bodies (Content-Encoding: gzip, br, etc.). The library validates the payload_max_length against the compressed data size received from the network, but does not limit the size of the decompressed data stored in memory. An attacker can exploit this by sending a compressed payload with a very high compression ratio (e.g., a zip bomb), which upon decompression consumes excessive memory, leading to service unavailability.(CVE-2026-22776)
- Record
OESA-2026-1160- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-1161
8.7
cpp-httplib security update
A C++11 single-file header-only cross platform HTTP/HTTPS library. It's extremely easy to setup. Just include httplib.h file in your code!
Security Fix(es):
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines.
This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.(CVE-2026-21428)
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.1, a Denial of Service (DoS) vulnerability exists due to the unsafe handling of compressed HTTP request bodies (Content-Encoding: gzip, br, etc.). The library validates the payload_max_length against the compressed data size received from the network, but does not limit the size of the decompressed data stored in memory. An attacker can exploit this by sending a compressed payload with a very high compression ratio (e.g., a zip bomb), which upon decompression consumes excessive memory, leading to service unavailability.(CVE-2026-22776)
- Record
OESA-2026-1161- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-21428
7.7
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.30.0, the write_headers function does not check for CR & LF characters in user supplied headers, allowing untrusted header value to escape header lines. This vulnerability allows attackers to add extra headers, modify request body unexpectedly & trigger an SSRF attack. When combined with a server that supports http1.1 pipelining (springboot, python twisted etc), this can be used for server side request forgery (SSRF). Version 0.30.0 fixes this issue.
- Record
UBUNTU-CVE-2026-21428- CVSS 4.0
- 7.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:P - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10435-1 No score
cpp-httplib-devel-0.38.0-1.1 on GA media
These are all security issues fixed in the cpp-httplib-devel-0.38.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10435-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20733-1 No score
Security update for cpp-httplib
This update for cpp-httplib fixes the following issues
- CVE-2026-21428: server-side request forgery via header injection (bsc#1255835).
- CVE-2026-22776: unsafe handling of compressed HTTP request can cause a denial of service (bsc#1256518).
- CVE-2026-28434: default exception handler may leak e.what() to clients via EXCEPTION_WHAT response header (bsc#1259221).
- CVE-2026-28435: payload size limit bypass via gzip decompression in ContentReader (streaming) can lead to denial of service (bsc#1259220).
- CVE-2026-29076: denial of service via crafted HTTP POST request (bsc#1259373).
- Record
openSUSE-SU-2026:20733-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21599-1 No score
Security update for cpp-httplib
This update for cpp-httplib fixes the following issues
- CVE-2026-21428: server-side request forgery via header injection (bsc#1255835).
- CVE-2026-22776: unsafe handling of compressed HTTP request can cause a denial of service (bsc#1256518).
- CVE-2026-28434: default exception handler may leak e.what() to clients via EXCEPTION_WHAT response header (bsc#1259221).
- CVE-2026-28435: payload size limit bypass via gzip decompression in ContentReader (streaming) can lead to denial of service (bsc#1259220).
- CVE-2026-29076: denial of service via crafted HTTP POST request (bsc#1259373).
- Record
SUSE-SU-2026:21599-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
cpp-httplibDebian:12 |
All versions, plus listed versions 0.11.4+ds-10.11.4+ds-1+deb12u10.11.4+ds-20.11.4+ds-30.13.1+ds-1 Show 22 moreShow less0.14.0+ds-10.14.1+ds-10.14.1+ds-20.14.2+ds-10.14.3+ds-10.14.3+ds-1.10.14.3+ds-1.1~exp10.15.3+ds-10.15.3+ds-20.15.3+ds-30.16.0+ds-10.16.3+ds-10.16.3+ds-20.18.0+ds-10.18.7-10.20.1+ds-30.25.0+ds-10.26.0+ds-20.41.0+ds-10.41.0+ds-20.41.0+ds-30.41.0+ds-3~bpo13+1 |
None known |
cpp-httplibDebian:13 |
All versions, plus listed versions 0.18.7-10.18.7-1+deb13u10.20.1+ds-30.25.0+ds-10.26.0+ds-2 Show 4 moreShow less0.41.0+ds-10.41.0+ds-20.41.0+ds-30.41.0+ds-3~bpo13+1 |
None known |
cpp-httplibDebian:14 |
before 0.41.0+ds-3, plus listed versions 0.18.7-10.20.1+ds-30.25.0+ds-10.26.0+ds-20.41.0+ds-10.41.0+ds-20.41.0+ds-3~bpo13+1 |
0.41.0+ds-3 |
cpp-httplibopenEuler:24.03-LTS From an advisory covering 2 CVEs |
before 0.30.1-1.oe2403 | 0.30.1-1.oe2403 |
cpp-httplibopenEuler:24.03-LTS-SP1 From an advisory covering 2 CVEs |
before 0.30.1-1.oe2403sp1 | 0.30.1-1.oe2403sp1 |
cpp-httplibopenEuler:24.03-LTS-SP2 From an advisory covering 2 CVEs |
before 0.30.1-1.oe2403sp2 | 0.30.1-1.oe2403sp2 |
cpp-httplibopenEuler:24.03-LTS-SP3 From an advisory covering 2 CVEs |
before 0.30.1-1.oe2403sp3 | 0.30.1-1.oe2403sp3 |
cpp-httplibUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 0.9.9+ds-10.9.10+ds-10.10.1+ds-10.10.2+ds-10.10.3+ds-10.10.3+ds-1ubuntu0.1~esm10.10.3+ds-1ubuntu0.1~esm2 |
None known |
cpp-httplibUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 0.13.1+ds-1ubuntu10.14.3+ds-10.14.3+ds-1.10.14.3+ds-1.1build10.14.3+ds-1.1build20.14.3+ds-1.1ubuntu0.1~esm10.14.3+ds-1.1ubuntu0.1~esm2 |
None known |
cpp-httplibUbuntu:25.10 |
All versions, plus listed versions 0.18.7-10.18.7-1ubuntu0.25.10.10.18.7-1ubuntu0.25.10.2 |
None known |
cpp-httplibUbuntu:26.10 |
All versions, plus listed versions 0.26.0+ds-2ubuntu30.26.0+ds-2ubuntu4 |
None known |
cpp-httplibUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 0.18.7-10.26.0+ds-2ubuntu20.26.0+ds-2ubuntu30.26.0+ds-2ubuntu3+esm1 |
None known |
cpp-httplibopenSUSE:Tumbleweed From an advisory covering 6 CVEs |
before 0.38.0-1.1 | 0.38.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-21428 is a high vulnerability (CVSS 7.7) in Yhirose Cpp-httplib, published January 1, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.40%, the 34th percentile. Fixed in cpp-httplib 0.41.0+ds-3.
References
github.com/yhirose/cpp-httplib/security/advisories/GHSA-wpc6-j37r-jcx7
github.com/yhirose/cpp-httplib/commit/98048a033a532ff22320ce1d11789f8d5710dfcd
github.com/yhirose/cpp-httplib/releases/tag/v0.30.0
github.com/CVEProject/cvelistV5/tree/main/cves/2026/21xxx/CVE-2026-21428.json
nvd.nist.gov/vuln/detail/CVE-2026-21428
security-tracker.debian.org/tracker/CVE-2026-21428
Show 19 moreShow less
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1158
nvd.nist.gov/vuln/detail/CVE-2026-22776
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1159
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1160
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1161
suse.com/support/update/announcement/2026/suse-su-202621599-1
bugzilla.suse.com/1255835
bugzilla.suse.com/1256518
bugzilla.suse.com/1259220
bugzilla.suse.com/1259221
bugzilla.suse.com/1259373
suse.com/security/cve/CVE-2026-21428
suse.com/security/cve/CVE-2026-22776
suse.com/security/cve/CVE-2026-28434
suse.com/security/cve/CVE-2026-28435
suse.com/security/cve/CVE-2026-29076
ubuntu.com/security/CVE-2026-21428
cve.org/CVERecord?id=CVE-2026-21428
suse.com/security/cve/CVE-2026-32627