HIGH 7.5

CVE-2026-55961: wolfSSL PKCS#7 Signature Verification Bypass

wolfSSL's PKCS#7 verification function returns success for certificate-only bundles that contain no actual signatures. This means applications relying on PKCS#7_verify() to authenticate content will incorrectly believe unsigned or improperly signed objects are legitimate. An attacker can craft a degenerate PKCS#7 bundle with empty signature data, and if your application processes it, the verification function falsely confirms its authenticity. This is particularly dangerous for code-signing, email verification, or document authentication workflows.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weaknesses (CWE)
CWE-347
Affected products
1 configuration(s)
Published / Modified
2026-06-25 / 2026-06-26

NVD description (verbatim)

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.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in wolfSSL's OpenSSL compatibility layer, specifically in the PKCS7_verify() function. PKCS#7 can legitimately contain certs-only objects with no signerInfos, meaning no actual cryptographic signatures are present. The vulnerable code path accepts these degenerate objects as verified, failing to enforce the requirement that at least one valid signature must be cryptographically validated before returning success. The PKCS7_NOVERIFY flag, which was intended only to skip certificate chain validation, was inadvertently being treated as a blanket waiver of signature verification itself. The fix now mandates that a signature has actually been verified, rejecting degenerate bundles regardless of flag settings.

Business impact

Any system using wolfSSL's PKCS#7 compatibility APIs for signature validation—including code-signing infrastructure, document authentication, email gateway signing checks, or supply-chain security—becomes vulnerable to accepting fraudulent or unsigned content. This breaks the integrity guarantees these systems depend on. An attacker could inject malicious code, forge signed documents, or bypass authentication checks. Organizations relying on PKCS#7 for trust decisions face direct risk of data tampering and unauthorized execution.

Affected systems

This vulnerability affects only OpenSSL-compatible builds of wolfSSL that use the PKCS7_verify() API. It does not impact wolfSSL's native APIs or non-OpenSSL-compatible configurations. Applications linking against wolfSSL in OpenSSL compatibility mode and calling PKCS7_verify() on untrusted PKCS#7 bundles are at risk. Verify your build configuration and which APIs your application uses.

Exploitability

Exploitability is straightforward from the attacker's perspective: constructing a certs-only PKCS#7 object requires no cryptographic material or special privileges. The attack is network-accessible, requires no user interaction, and no authentication. Any network-facing application that processes PKCS#7 structures (email servers, signature validators, document processors) can be targeted. The primary obstacle is discovering which systems use wolfSSL's PKCS#7 APIs; once identified, exploitation is trivial.

Remediation

Update wolfSSL to a patched version. Verify the specific patch version against wolfSSL's security advisory and release notes. Organizations should audit code paths that call PKCS7_verify() to understand trust dependencies. If wolfSSL cannot be updated immediately, implement additional validation: never rely solely on PKCS7_verify() for security decisions; verify that signerInfos exist and contain validated signature data before trusting the result. Consider using native APIs if OpenSSL compatibility is not required.

Patch guidance

Contact wolfSSL or consult their official security advisories for patched version numbers and availability timelines. Patches should be validated in your development environment before production rollout. Prioritize systems processing untrusted PKCS#7 data, such as email servers or code-signing validators. Regression testing should confirm that legitimately signed PKCS#7 objects continue to verify correctly after patching.

Detection guidance

Monitor application logs for PKCS7_verify() calls on certs-only or degenerate PKCS#7 structures. If you can instrument the application, log signerInfos count and signature validation outcomes before accepting the result. Network-based detection is difficult without payload inspection; focus on runtime monitoring and code-level instrumentation. Check for unexpected PKCS#7 bundles lacking signature blocks in email gateways or document processors.

Why prioritize this

This is a HIGH-severity integrity bypass in a cryptographic validation function. The attack requires no special access, privileges, or user interaction, and the impact—bypassing signature verification—directly enables data tampering and code execution in downstream systems. Although not yet on the KEV catalog, the straightforward exploitability and severity warrant immediate attention, especially for any organization using PKCS#7 for trust decisions.

Risk score, explained

CVSS 3.1 score of 7.5 (HIGH) reflects network accessibility, low attack complexity, no privilege or interaction requirements, and high integrity impact. The attack vector and success conditions are uncomplicated, allowing widespread exploitation. The lack of availability or confidentiality impact prevents a critical rating, but the integrity bypass directly enables secondary attacks on dependent systems.

Frequently asked questions

Do I need to worry about this if I use wolfSSL in its native build, not OpenSSL compatibility mode?

No. This vulnerability is specific to the OpenSSL compatibility layer. If your application links wolfSSL natively and does not use PKCS7_verify(), you are not affected. Verify your build configuration in your project documentation or with your build system.

What is a certs-only PKCS#7 bundle, and why would anyone create one?

A PKCS#7 certs-only bundle contains only certificates, with no signatures or signed data. They are legitimate in some contexts—for instance, distributing a certificate chain. However, if such a bundle is processed as if it were signed content, the absence of actual signatures must be detected and rejected. wolfSSL incorrectly accepted these as verified.

If I use the PKCS7_NOVERIFY flag, am I exempt from this vulnerability?

No. The PKCS7_NOVERIFY flag was intended to suppress certificate chain validation, not to waive the requirement that a signature exists and is valid. The fix enforces signature verification regardless of this flag, which is the correct behavior.

How can I temporarily mitigate this risk without updating wolfSSL?

Add application-level checks before trusting PKCS7_verify() results: confirm signerInfos is not empty, verify that the function returned success after validating actual signature data (not just cert chain checks), and consider inspecting the raw PKCS#7 structure for degenerate cases. This is not a substitute for patching, but it reduces exposure in the short term.

This analysis is based on the CVE description and CVSS scoring provided. Patch version numbers, specific release dates, and vendor advisory links should be verified directly with wolfSSL's official security channels. No exploit code or proof-of-concept is provided. Organizations should assess their specific wolfSSL build configuration and API usage to determine exposure. This intelligence is for authorized security professionals and risk management purposes. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).