cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.37.0, cpp-httplib uses std::regex (libstdc++) to parse RFC 5987 encoded filename* values in multipart Content-Disposition headers. The regex engine in libstdc++ implements backtracking via deep recursion, consuming one stack frame per input character. An attacker can send a single HTTP POST request with a crafted filename* parameter that causes uncontrolled stack growth, resulting in a stack overflow (SIGSEGV) that crashes the server process. This issue has been patched in version 0.37.0.
{
"cwe_ids": [
"CWE-1333",
"CWE-674"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29076.json",
"cna_assigner": "GitHub_M"
}{
"cpe": "cpe:2.3:a:yhirose:cpp-httplib:*:*:*:*:*:*:*:*",
"source": [
"CPE_RANGE",
"REFERENCES"
],
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "0.37.0"
}
]
}"2026-07-22T03:08:50Z"
[
{
"signature_type": "Function",
"target": {
"file": "test/test.cc",
"function": "TEST"
},
"deprecated": false,
"source": "https://github.com/yhirose/cpp-httplib/commit/de296af3eb5b0d5c116470e033db900e4812c5e6",
"id": "CVE-2026-29076-554c16a0",
"signature_version": "v1",
"digest": {
"function_hash": "237936591402214651401279883398651361996",
"length": 1108.0
}
},
{
"signature_type": "Line",
"target": {
"file": "test/test.cc"
},
"deprecated": false,
"source": "https://github.com/yhirose/cpp-httplib/commit/de296af3eb5b0d5c116470e033db900e4812c5e6",
"id": "CVE-2026-29076-7606882b",
"signature_version": "v1",
"digest": {
"line_hashes": [
"309024782862823533139338211795996186596",
"7839956594439321606962847164061496972",
"12687117214297278841990333245619558674",
"143994490375359120576663796943720785488",
"96208271181828219443939827392695470831",
"234674402923027064236410791687030770732",
"322492796322437330966953077832002777863",
"243898783827694880252824254507942876352"
],
"threshold": 0.9
}
},
{
"signature_type": "Line",
"target": {
"file": "httplib.h"
},
"deprecated": false,
"source": "https://github.com/yhirose/cpp-httplib/commit/de296af3eb5b0d5c116470e033db900e4812c5e6",
"id": "CVE-2026-29076-a521b113",
"signature_version": "v1",
"digest": {
"line_hashes": [
"283461347697145605990353131721631228646",
"317816394311432108134934590617596588190",
"260729738294240947720973995679438464087",
"92606262670744106618818917992551696386",
"758283165799264715444508233140374639",
"167685828088613054992179248988962440460",
"101730038497963474406760851837415666168",
"4886179887345815178455501738634573180",
"114384602934601073345597924936986340169",
"110186337317846723965865112085172832744",
"126759218069447842223487999870084534347",
"187208488398962529278613125758738484047",
"137054790988581298113428252414869384961",
"305920338525971726203288552478051009521",
"228300519572110876182238860862426601967",
"208931648635274734019654502913369448381",
"119198146933619949402160524817870803654",
"12382769242152171805705224765586807681",
"244547348337947176159043738983358464383",
"313086644932006488650364205763955723535",
"282884093883479764805603304034313241597",
"103189393625292220994570787459445843507",
"190412590663406317983732281701957063290",
"269790247183657763970139643354540099035",
"319058851376040146330968978522608749375",
"240522512309630831697827857464120036961",
"63023319149774050960125992398873200987",
"224680879596290974579546047781168707333",
"131499705893380037544389072140749975935",
"322513769813133753122320795084453184916"
],
"threshold": 0.9
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-29076.json"