Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach app endpoint accepting PKCS#7
-
DeliveryCraft degenerate certs-only PKCS#7 (no signer)
-
ExploitSubmit to wolfSSL_PKCS7_verify()
-
ExecutionVerification returns false success
-
ImpactUnsigned content trusted, integrity bypassed
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires that the target application is built with wolfSSL's OpenSSL compatibility layer AND calls the PKCS7_verify() / wolfSSL_PKCS7_verify() API on PKCS#7 bundles whose contents an attacker can influence. The attacker must supply a degenerate certs-only PKCS#7 SignedData object with empty signerInfos (no signer signature). No authentication, privileges, or user interaction are needed (PR:N/UI:N), but the AT:P attack requirement means it only works where the application accepts and verifies externally provided PKCS#7 data and acts on the success/failure result. Limiting factors: wolfSSL builds without the OpenSSL PKCS#7 compat layer are unaffected, applications that never call PKCS7_verify() on untrusted input are unaffected, and the PKCS7_NOVERIFY flag does not change exploitability (it never waived the signature-existence requirement). |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N, score 8.2 / High) cleanly matches the defect: network-reachable, no privileges or user interaction, but with an Attack Requirement (AT:P) - the victim application must actually pass a potentially degenerate, attacker-controlled PKCS#7 bundle to the compat verify API. Impact is purely to integrity (VI:H); there is no confidentiality or availability loss, consistent with a signature-acceptance bug rather than memory corruption or data exposure. There is no EPSS score, no KEV listing, and no public POC in the provided data, so this is a high-severity correctness/trust flaw rather than a confirmed mass-exploitation event. Real-world risk is conditional: it only matters for products that build wolfSSL with OpenSSL compatibility and rely on PKCS7_verify() to make trust decisions (e.g. validating signed payloads, JWT/JWS-adjacent or S/MIME-style flows - note the 'Jwt Attack' and 'OpenSSL' tags). For those deployments the impact is serious because the verification routine returns the wrong answer silently. Priority is genuinely high for affected integrators but near-zero for wolfSSL users who never call the PKCS7 compat layer. |
| Exploit ScenarioDerived | An attacker crafts a degenerate PKCS#7 SignedData object containing only certificates (or empty content) and no SignerInfo, then submits it to a network service that authenticates payloads via wolfSSL's PKCS7_verify() compat API. The call returns success, so the service accepts the unsigned content as if it were validly signed, allowing the attacker to spoof a trusted/signed message. No public POC is referenced, and exploitation depends on the target application's use of the vulnerable API on attacker-supplied input (AT:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 25, 2026
Signature-verification bypass in wolfSSL's OpenSSL compatibility layer allows a degenerate (certs-only) PKCS#7 object - one with empty signerInfos and no actual signature - to be falsely reported as verified by wolfSSL_PKCS7_verify(). Applications using the PKCS7_verify() compat API to authenticate attacker-supplied PKCS#7/CMS bundles can be tricked into treating unsigned content as authentic, undermining integrity guarantees. There is no public exploit identified at time of analysis and it is not in CISA KEV, but the underlying defect is a classic improper-signature-verification (CWE-347) issue with a CVSS 4.0 base score of 8.2.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - apply the change from wolfSSL pull request https://github.com/wolfSSL/wolfssl/pull/10702 and track the wolfSSL security advisory page https://www.wolfssl.com/docs/security-vulnerabilities/ for the tagged release that includes it, then upgrade to that version. As a compensating control until you can update, applications should not trust the boolean result of PKCS7_verify() alone: explicitly reject PKCS#7/CMS objects that contain zero SignerInfos (degenerate, certs-only bundles) before treating content as authenticated, and verify that at least one signer was actually validated. Do not rely on the PKCS7_NOVERIFY flag to imply any signature checking - it only suppresses certificate-chain validation. If feasible, constrain inputs so only structures with an expected signer reach the verify path; the trade-off is added application-side parsing/validation logic and potential rejection of legitimate certs-only bundles your workflow may have relied on.
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
The flaw lives in wolfSSL's OpenSSL compatibility shim (src/ssl_p7p12.c), specifically the wolfSSL_PKCS7_verify() emulation of OpenSSL's PKCS7_verify(). PKCS#7 / CMS SignedData structures can legitimately be 'degenerate' - carrying only certificates and CRLs with an empty set of signerInfos (commonly used to ship a cert bundle, e.g. as in openssl crl2pkcs7). The internal primitive wc_PKCS7_VerifySignedData() returns success on such an object because there is technically nothing to fail: with no SignerInfo there is no signature to check. The compat wrapper previously mapped that internal success directly to WOLFSSL_SUCCESS, so 'no signer' was indistinguishable from 'signer verified.' The root cause is CWE-347 (Improper Verification of Cryptographic Signature): the absence of a signature was conflated with a valid signature. The CPE cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:* indicates the wolfSSL library itself across versions, but only OpenSSL-compatibility builds that expose and call PKCS7_verify() are reachable. The fix adds a guard checking p7->pkcs7.verifyCert (set only after a signer's signature is actually verified) and returns WOLFSSL_FAILURE when it is NULL, enforced even under the PKCS7_NOVERIFY flag - clarifying that NOVERIFY waives signer chain validation, not the requirement that a signature exist.
Know when Wolfssl 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:H/VA:N/SC:N/SI:N/SA:N
Network-reachable with no auth or interaction, but AC:H reflects the requirement that the app feed attacker-controlled PKCS#7 to the compat verify API; impact is integrity-only (signature bypass), no C or A loss.
Primary rating from Vendor (wolfSSL).
CVSS VectorVendor: wolfSSL
DescriptionCVE.org
wolfSSL_PKCS7_verify() returning success for a degenerate (certs-only) PKCS#7 object that contains no signer. Such an object has empty signerInfos, so the underlying signed-data verification succeeds without authenticating any content. The compatibility-layer verify path now rejects the object when no signer signature has actually been verified, so a PKCS#7 carrying no valid signature is no longer reported as verified. This is enforced regardless of the PKCS7_NOVERIFY flag, which only suppresses signer certificate chain validation and was never intended to waive the requirement that a signature exist. Only affects OpenSSL compatibility builds that call the PKCS7_verify() compatibility API on potentially degenerate PKCS#7 bundles.
Executive ViewAI
wolfSSL's PKCS#7 signature verification function contains a bypass vulnerability (CVE-2026-55961) that falsely reports unsigned content as authentically signed, enabling attackers to forge documents and communications. Organizations using wolfSSL to validate digital signatures for untrusted or external content face a critical integrity risk where attackers can craft degenerate PKCS#7 bundles that bypass authentication controls. Immediate identification and patching of affected systems is required to restore signature validation integrity.
Apply vendor patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
Authentication bypass in wolfSSL TLS clients built with Raw Public Key (RPK) support allows a malicious or on-path serve
wolfSSL builds that enable the WOLFSSL_TRUST_PEER_CERT macro can be induced to accept a forged clone of a trusted-peer C
Certificate forgery in the wolfSSL client (versions 5.7.2 through 5.9.2) lets a remote attacker who already holds any ce
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
EUVD-2026-39491
GHSA-cj56-5c53-9qjf
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB