Skip to main content

CrowCpp Crow CVE-2026-38967

| EUVDEUVD-2026-34020 CRITICAL
HTTP Response Splitting (CWE-113)
2026-06-02 mitre GHSA-jjvh-j394-wqm7
9.8
CVSS 3.1 · Vendor: mitre
Share

Severity by source

Vendor (mitre) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Primary rating from Vendor (mitre) · only source for this CVE.

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Source Code Evidence Fetched
Jun 03, 2026 - 18:23 vuln.today
Analysis Generated
Jun 03, 2026 - 18:23 vuln.today
CVSS changed
Jun 03, 2026 - 18:22 NVD
9.8 (CRITICAL)
CVE Published
Jun 02, 2026 - 00:00 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

CrowCpp Crow through v1.3.1 HTTP is vulnerable to response header injection via unvalidated response header values.

AnalysisAI

HTTP response header injection in CrowCpp Crow through v1.3.1 allows remote attackers to inject arbitrary CR/LF sequences into response headers when application code passes unvalidated input to header-setting APIs. The flaw stems from the framework not stripping \r\n characters in header keys or values, enabling CRLF injection that can lead to response splitting, cache poisoning, or XSS depending on how the embedding application uses user input. No public exploit identified at time of analysis and EPSS is very low (0.02%), but the upstream fix in PR #1167 confirms the issue and provides a sanitization routine.

Technical ContextAI

Crow is a C++ header-only micro web framework (similar in design to Python's Flask) used to build HTTP servers and REST APIs in C++ applications. The root cause is CWE-113 (Improper Neutralization of CRLF Sequences in HTTP Headers / HTTP Response Splitting): the framework's response and request header setters in include/crow/http_response.h and include/crow/http_request.h accepted arbitrary strings as header keys and values without filtering carriage-return (\r) or line-feed (\n) bytes. Because HTTP uses CRLF as a delimiter between headers and between headers and the body, an attacker-controlled value containing \r\n can terminate the current header early and inject additional headers or even a full second response. The upstream patch (PR #1167) introduces a sanitize_header_value() helper that strips \r and \n from both keys and values at the point where headers are set, and adds a demonstration example (helloworld_inject.cpp) showing the unsafe set_header("X-Custom", "safe\r\nInjected: yes") pattern.

RemediationAI

Upstream fix available via GitHub PR https://github.com/CrowCpp/Crow/pull/1167, which adds a sanitize_header_value() routine that strips \r and \n from header keys and values in both http_request.h and http_response.h; a released patched version is not independently confirmed in the provided data, so consumers should pull the post-PR-1167 commit from the CrowCpp/Crow repository and rebuild, or wait for a tagged release after v1.3.1. As a code-level workaround until the upgrade lands, audit every call site that invokes res.set_header(), res.add_header(), or request header setters with non-literal data and wrap the value with an equivalent strip of \r and \n before passing it in - note this requires source changes and a rebuild since Crow is header-only. At the perimeter, a reverse proxy or WAF (nginx, HAProxy, Envoy, ModSecurity) can be configured to drop or reject upstream responses containing bare CRLF inside header values, with the trade-off that strict header validation may break legitimate multi-line legacy headers and adds an extra hop. Avoid disabling Crow's header API as a mitigation since that would break normal application functionality.

More in N A

View all
CVE-2024-51092 CRITICAL POC
9.1 May 08

LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr

CVE-2025-15684 MEDIUM POC
5.5 Aug 12

Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han

CVE-2024-45257 HIGH POC
7.3 May 08

A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi

CVE-2025-15687 LOW POC
2.1 Aug 12

Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc

CVE-2025-15686 LOW POC
2.1 Aug 12

Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula

CVE-2025-67888 HIGH POC
7.3 May 08

Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root

CVE-2024-53326 HIGH POC
7.3 May 08

LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(

CVE-2026-38360 CRITICAL POC
9.8 May 08

Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti

CVE-2026-30623 CRITICAL POC
9.8 Jul 15

Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr

CVE-2026-67917 CRITICAL POC
9.8 Aug 17

SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg

CVE-2026-75337 CRITICAL POC
9.8 Aug 27

Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ

CVE-2026-31072 CRITICAL POC
9.8 May 19

Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali

Share

CVE-2026-38967 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy