Severity by source
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Clear
Local-only vector with high complexity and low privileges required; passive interaction needed; only low availability impact from incorrect length handling causing potential crash.
Primary rating from Vendor (wolfSSL).
CVSS VectorVendor: wolfSSL
Lifecycle Timeline
2DescriptionCVE.org
Integer underflow in wc_PKCS7_DecryptOri when handling crafted Other Recipient Info, leading to incorrect length handling during decryption.
AnalysisAI
Integer underflow in wolfSSL's PKCS#7 ORI decryption path allows a local low-privileged attacker to cause incorrect length computation during EnvelopedData parsing, resulting in low-severity availability impact. Specifically, when the OID embedded inside an implicit [4] CONSTRUCTED Other Recipient Info sequence consumes more bytes than the field's declared length, the word32 subtraction for oriValueSz wraps around to a near-maximal unsigned value, feeding corrupted length data to downstream decryption logic. No public exploit has been identified and no CISA KEV listing exists; exploitation requires local access, high complexity, and passive processing of crafted input by the target application.
Technical ContextAI
The vulnerability is in wc_PKCS7_DecryptOri within wolfSSL's PKCS#7 implementation (src/ssl_p7p12.c). PKCS#7 EnvelopedData supports multiple RecipientInfo types; Other Recipient Info (ORI) is encoded using an implicit ASN.1 [4] CONSTRUCTED tag that replaces the outer SEQUENCE. The parser reads seqSz from the [4] length field, then parses the OID within it. When an attacker crafts a message where the OID's total byte consumption (tag byte + length byte + content bytes) exceeds the declared seqSz, the computation oriValueSz = seqSz - oidConsumed underflows the word32 (unsigned 32-bit integer), wrapping to approximately 0xFFFFFFFF minus the difference. CWE-191 (Integer Underflow / Wrap-or-Wraparound) is the root cause. The wrapped value is then passed as a length parameter to downstream decryption callbacks, producing incorrect behavior. The CPE string cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:* covers all versions. The PR also corrects a related heap-OOB read in wolfSSL_PKCS7_get0_signers where directly passing the address of a struct field to wolfSSL_d2i_X509 caused the stored pointer to be permanently advanced on each call, leading to a corrupted pointer on subsequent access.
RemediationAI
The upstream fix is available as GitHub PR #10203 (https://github.com/wolfSSL/wolfssl/pull/10203); however, a tagged patched release version has not been independently confirmed - only the upstream PR reference is available, so this should be treated as 'Upstream fix available (PR/commit); released patched version not independently confirmed.' Organizations should monitor https://www.wolfssl.com/docs/security-vulnerabilities/ for the formal advisory citing a specific release. As a compile-time compensating control, removing the HAVE_PKCS7 build flag eliminates the vulnerable code path entirely; the trade-off is complete loss of PKCS#7 functionality. If PKCS#7 support is required but ORI decryption is not, applications should validate or reject EnvelopedData messages containing [4] CONSTRUCTED ORI RecipientInfo structures at the application boundary before passing them to wolfSSL, preventing the underflow from being triggered without altering library behavior.
wolfSSL prior to version 3.12.2 provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange i
A specially crafted x509 certificate can cause a single out of bounds byte overwrite in wolfSSL through 3.10.2 resulting
wolfSSL (formerly CyaSSL) before 3.6.8 allows remote attackers to cause a denial of service (resource consumption or tra
In wolfSSL before 5.5.1, malicious clients can cause a buffer overflow during a TLS 1.3 handshake. Rated high severity (
An issue was discovered in wolfSSL before 5.5.0. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita
wolfSSL 4.3.0 has mulmod code in wc_ecc_mulmod_ex in ecc.c that does not properly resist timing side-channel attacks. Ra
In wolfSSL 4.1.0 through 4.2.0c, there are missing sanity checks of memory accesses in parsing ASN.1 certificate data wh
An issue was discovered in wolfSSL before 4.5.0, when single precision is not employed. Rated high severity (CVSS 7.0).
wolfSSL before 4.5.0 mishandles TLS 1.3 server data in the WAIT_CERT_CR state, within SanityCheckTls13MsgReceived() in t
wolfSSL (formerly CyaSSL) before 3.6.8 does not properly handle faults associated with the Chinese Remainder Theorem (CR
An issue was discovered in wolfSSL before 5.5.0 (when --enable-session-ticket is used); however, only version 5.3.0 is e
wolfSSL 4.6.x through 4.7.x before 4.8.0 does not produce a failure outcome when the serial number in an OCSP request di
Same weakness CWE-191 – Integer Underflow
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39558
GHSA-p894-8wv9-373j