{"id":"CVE-2026-77341","state":"PUBLISHED","title":"cpp-httplib: CRLF injection via unvalidated HTTP trailer headers in chunked response writing","description":"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.","publishedAt":"2026-08-27T22:16:45.356Z","updatedAt":"2026-08-28T15:30:02.142Z","severity":{"score":5.3,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["yhirose cpp-httplib"],"affected":[{"vendor":"yhirose","product":"cpp-httplib","versions":[{"version":">= 0.49.0, < 0.50.0","status":"affected"}]}],"references":["https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-2r2h-jc8w-w66c","https://github.com/yhirose/cpp-httplib/commit/568d434e72fc51729d0ad33abffb181e5f7a453d"],"weaknesses":["CWE-93","CWE-113"],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/77xxx/CVE-2026-77341.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-77341","state":"PUBLISHED","datePublished":"2026-08-27T22:16:45.356Z","dateUpdated":"2026-08-28T15:30:02.142Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-08-20T19:28:35.243Z"},"containers":{"cna":{"title":"cpp-httplib: CRLF injection via unvalidated HTTP trailer headers in chunked response writing","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"yhirose","product":"cpp-httplib","versions":[{"version":">= 0.49.0, < 0.50.0","status":"affected"}]}],"references":[{"url":"https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-2r2h-jc8w-w66c","name":"https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-2r2h-jc8w-w66c","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/yhirose/cpp-httplib/commit/568d434e72fc51729d0ad33abffb181e5f7a453d","name":"https://github.com/yhirose/cpp-httplib/commit/568d434e72fc51729d0ad33abffb181e5f7a453d","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"PASSIVE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"LOW","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"LOW","subIntegrityImpact":"LOW","subAvailabilityImpact":"NONE","baseScore":5.3,"baseSeverity":"MEDIUM","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N","version":"4.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-93","lang":"en","description":"CWE-93: Improper Neutralization of CRLF Sequences ('CRLF Injection')","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-113","lang":"en","description":"CWE-113: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting')","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-08-27T22:16:45.356Z"},"source":{"advisory":"GHSA-2r2h-jc8w-w66c","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-2r2h-jc8w-w66c","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-08-28T15:29:40.847359Z","id":"CVE-2026-77341","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-28T15:30:02.142Z"}}]}}}