CVE-2023-29197
Guzzlephp Psr-7 ≤ 1.9.1
Raw vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NSummary
CVE-2023-29197 is a medium-severity Interpretation Conflict (CWE-436) vulnerability in Guzzlephp Psr-7. Its CVSS base score is 5.3 (Medium).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked in the top 34% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.
OWASP Top 10 for Web (2025)
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2023-1416
Vulnerability Data
guzzlehttp/psr7 is a PSR-7 HTTP message library implementation in PHP. Affected versions are subject to improper header parsing. An attacker could sneak in a newline (\n) into both the header names and values. While the specification states that \r\n\r\n is…
more
used to terminate the header list, many servers in the wild will also accept \n\n. This is a follow-up to CVE-2022-24775 where the fix was incomplete. The issue has been patched in versions 1.9.1 and 2.4.5. There are no known workarounds for this vulnerability. Users are advised to upgrade.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise Techniques
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST CSF 2.0) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.
Secure SDLC practices directly reduce the chance of introducing parser or state-machine inconsistencies.
Correlating logs from multiple products can surface discrepancies caused by interpretation conflicts.
Runtime monitoring of software behavior can detect adverse outcomes stemming from differing interpretations.
Supplier risk assessments can identify products whose differing interpretations create systemic exposure.
Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.
Security testing can detect and correct cases where one component misinterprets another’s state or messages.
Secure development lifecycle can require consistent interface contracts and canonicalization rules that reduce interpretation conflicts between components.
Explicit application security requirements can mandate unambiguous protocol and data-format specifications that prevent divergent interpretations.
Secure architecture principles include well-defined component boundaries and shared data models that limit conflicting state perceptions.
Secure coding standards can enforce canonical input handling and strict protocol compliance to avoid misinterpretation between products.