Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft certificate with CR/LF in AIA OCSP URI path
-
DeliveryDeliver certificate to victim running ocspcheck
-
Exploiturl2host() copies path without filtering control characters
-
Executionhttp_open() emits injected bytes in POST request line
-
ImpactHeaders injected or OCSP request split to responder
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization CRLF sequence sanitization
|
| Exploitation Conditions | Exploitation requires that LibreSSL ocspcheck (version ≤4.4.0) be used to process an attacker-controlled certificate containing an AIA OCSP URI whose path includes CR/LF control characters; the specific trigger is that url2host() copies the URI path without rejecting control characters and http_open() places it unescaped into the HTTP POST request line sent to the OCSP responder. Limiting factors: the attacker cannot reach the vulnerable code directly but depends on the victim invoking ocspcheck against a malicious certificate (reflected by AT:P in the CVSS 4.0 vector), impact is confined to HTTP integrity (header injection / request splitting) against the responder host with no confidentiality or availability effect, and systems on LibreSSL 4.4.0 or later with the control-character filter are not affected. |
| Impact | This is a medium-severity (CVSS 4.0 base 6.3) CRLF/HTTP-header-injection flaw (CWE-93) in LibreSSL's ocspcheck utility, and the real-world risk is moderate and conditional rather than urgent. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) encodes the key nuance: although it is network-reachable and needs no privileges, AT:P marks a genuine attack requirement - the attacker does not talk to ocspcheck directly but must get it to process an attacker-controlled X.509 certificate whose AIA OCSP URI contains embedded CR/LF. Impact is limited to integrity (VC:N/VI:L/VA:N): the attacker can inject headers into or split the HTTP POST that ocspcheck sends to the OCSP responder, with no confidentiality or availability loss and no scope change to a subsequent system (SC/SI/SA:N). Signals are consistent and modest: no KEV listing is present, no EPSS score was provided, and no verified public exploit code is supplied - the VulnCheck entry is an advisory reference, not working exploit code. The vendor-assigned priority is 'this_month,' aligning with the medium score and the conditional, integrity-only impact. Net: a legitimate patch-management item, not a high-CVSS-but-overhyped critical nor an emergency. EPSS and KEV data are absent and should be confirmed before final prioritization. |
| Exploit ScenarioDerived | An attacker crafts an X.509 certificate whose Authority Information Access OCSP URI path embeds CR/LF sequences, then induces a victim running LibreSSL ocspcheck to validate that certificate. Because url2host() copies the path without rejecting control characters and http_open() places it in the POST request line, the injected bytes split or add headers in the OCSP request sent to the responder. No verified public exploit code is provided - only a VulnCheck advisory reference exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
HTTP header injection in LibreSSL's ocspcheck utility (through 4.4.0) lets a certificate-borne CR/LF sequence in the AIA OCSP URI path be carried into the POST request line sent to the OCSP responder, allowing injected headers or request splitting. The attacker does not reach the code directly: exploitation requires the victim to run ocspcheck against an attacker-supplied certificate whose AIA URI path contains control characters, which is why the assessed severity is moderate (CVSS 4.0 base 6.3, CVSS 3.1 AV:N/AC:H/PR:N/UI:N with integrity-only impact). No public exploit code and no confirmed active exploitation were identified at time of analysis, and impact is limited to the integrity of HTTP traffic toward the responder host, with no confidentiality or availability effect.
RemediationAI
The vendor fix is in two openbsd/src commits, https://github.com/openbsd/src/commit/6efdc4cce3fac9fa7208a9452f84de34c5a68e9f (which introduces ocsp_url_chars_only() and the control-character rejection in ocspcheck.c) and https://github.com/openbsd/src/commit/3adb7688a5bcfb675fa6d8b10e242022d620a23d; upstream fix commits are available, but no released patched version number is independently confirmed from the supplied data, so build ocspcheck from the libressl/portable tree at a commit that includes both changes or take your distribution's rebuilt package once it carries them. Deployments already running a build containing the character filter are not affected. Until a fixed binary is in place, restrict ocspcheck to certificates obtained from trusted sources rather than certificates supplied by third parties or extracted from untrusted network input, since the injected content originates entirely in the certificate's AIA OCSP URI path; note that this is a usage restriction, not a code-level fix, and it leaves the vulnerable request-line construction in place. Updating to a build with the filter is the only complete fix identified in the available sources.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
LibreSSL is the OpenBSD fork of OpenSSL, and ocspcheck is the command-line utility shipped with it (and in the libressl/portable tree) for validating OCSP revocation status. When processing a certificate, ocspcheck extracts the OCSP responder URL from the certificate's Authority Information Access (AIA) extension, then url2host() splits that URL into host and path. The path was copied verbatim: no check rejected non-printable characters, and http_open() subsequently placed the path unescaped into the HTTP POST request line toward the responder. This is CWE-93 (CRLF sequence neutralization / HTTP response-request splitting family), so embedded CR/LF characters in the URI path terminate the request line early and let an attacker append arbitrary headers or start a second, split request. The upstream fix adds an ocsp_url_chars_only() helper in usr.sbin/ocspcheck/ocspcheck.c that walks the URL and rejects any byte that is not ASCII, or that is neither alphanumeric nor punctuation, before the URL is duplicated into the request structure; ocsp_request_new_from_cert() then warns "Invalid OCSP url from <file>" and aborts. The relevant pre-patch code is at usr.sbin/ocspcheck/http.c line 344 and usr.sbin/ocspcheck/ocspcheck.c line 154 in the openbsd/src tree. The affected CPE is cpe:2.3:a:openbsd:libressl:*:*:*:*:*:*:*:*.
Know when Libressl gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable with no privileges, but AC:H reflects the required attacker-controlled certificate being processed by ocspcheck; impact is integrity-only (I:L) header injection, no C or A.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
LibreSSL ocspcheck through 4.4.0 contains a CRLF injection vulnerability that allows attackers to inject HTTP headers by embedding CR/LF sequences in a certificate's AIA OCSP URI path. Because url2host() copies the path without rejecting control characters and http_open() places it in the POST request line, attackers can inject headers or split OCSP requests sent to the responder host.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Related Vulnerabilities in LibreSSL CRLF Injection and Transport Flaws
View all 4A double free or use after free could occur after SSL_clear in OpenBSD 7.2 before errata 026 and 7.3 before errata 004,
x509_constraints_parse_mailbox in lib/libcrypto/x509/x509_constraints.c in LibreSSL through 3.4.0 has a stack-based buff
Double free vulnerability in the ssl_parse_clienthello_use_srtp_ext function in d1_srtp.c in LibreSSL before 2.1.2 allow
The int_x509_param_set_hosts function in lib/libcrypto/x509/x509_vpm.c in LibreSSL 2.7.0 before 2.7.1 does not support a
LibreSSL 2.5.1 to 2.5.3 lacks TLS certificate verification if SSL_get_verify_result is relied upon for a later check of
LibreSSL before 2.6.5 and 2.7.x before 2.7.4 allows a memory-cache side-channel attack on DSA and ECDSA signatures, aka
EUVD-2026-111548
GHSA-5qhg-9pm8-2mwp
NVD
CVE.org
EPSS
Exploit-DB