Skip to content
Heist/ feed
Back to feed
Medium

Bleichenbacher padding oracle in PKCS#7 KTRI RSA PKCS#1 v1.5 decryption

Type: advisorySources: OSV

Bleichenbacher padding oracle in PKCS#7 KTRI decryption. When decrypting PKCS#7 EnvelopedData using RSA PKCS#1 v1.5 key transport, wolfSSL returned distinguishable error codes depending on whether RSA padding validation failed versus whether the decrypted content was malformed. An attacker able to submit crafted EnvelopedData messages and observe error responses could use this as a padding oracle to incrementally recover the encrypted Content Encryption Key (CEK). The fix generates a deterministic pseudo-random fake CEK on padding failure (via HMAC-SHA256) and proceeds with decryption identically, using constant-time operations throughout, so that all failure paths produce the same error regardless of padding validity.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-6291
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 02:50 UTC · Revision 1

Source evidence

Bleichenbacher padding oracle in PKCS#7 KTRI RSA PKCS#1 v1.5 decryption

core-osv · Original source

Published 25 Jun 2026, 16:41 UTC

Bleichenbacher padding oracle in PKCS#7 KTRI decryption. When decrypting PKCS#7 EnvelopedData using RSA PKCS#1 v1.5 key transport, wolfSSL returned distinguishable error codes depending on whether RSA padding validation failed versus whether the decrypted content was malformed. An attacker able to submit crafted EnvelopedData messages and observe error responses could use this as a padding oracle to incrementally recover the encrypted Content Encryption Key (CEK). The fix generates a deterministic pseudo-random fake CEK on padding failure (via HMAC-SHA256) and proceeds with decryption identically, using constant-time operations throughout, so that all failure paths produce the same error regardless of padding validity.

osv:CVE-2026-6291
Complete source record
{
  "id": "2bf0a60eebd14db1e79e6d589d1c944961e49feb19650f0433c7076885f6f1c9",
  "url": "https://osv.dev/vulnerability/CVE-2026-6291",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Bleichenbacher padding oracle in PKCS#7 KTRI RSA PKCS#1 v1.5 decryption",
    "summary": "Bleichenbacher padding oracle in PKCS#7 KTRI decryption. When decrypting PKCS#7 EnvelopedData using RSA PKCS#1 v1.5 key transport, wolfSSL returned distinguishable error codes depending on whether RSA padding validation failed versus whether the decrypted content was malformed. An attacker able to submit crafted EnvelopedData messages and observe error responses could use this as a padding oracle to incrementally recover the encrypted Content Encryption Key (CEK). The fix generates a deterministic pseudo-random fake CEK on padding failure (via HMAC-SHA256) and proceeds with decryption identically, using constant-time operations throughout, so that all failure paths produce the same error regardless of padding validity.",
    "evidence": "osv:CVE-2026-6291",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-6291",
      "aliases": [
        "CVE-2026-6291"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/wolfssl/wolfssl",
              "type": "GIT",
              "events": [
                {
                  "introduced": "f27159f2db71c4142629c861506de332fe5911be"
                },
                {
                  "fixed": "ac01707f552c611fbd135cc723b2682b3e7f80f2"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "3.9.10"
                      },
                      {
                        "last_affected": "5.9.1"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "cpe": "cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "3.9.10"
                      },
                      {
                        "fixed": "5.9.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v5.9.1-stable",
            "v5.9.0-stable",
            "v5.8.4-stable",
            "wolfEntropy2d",
            "v5.8.2-stable",
            "wolfEntropy1",
            "v5.8.0-stable",
            "v5.7.6-stable",
            "v5.7.4-stable",
            "v5.2.1",
            "v5.7.2-stable",
            "v5.7.0-stable",
            "v5.6.6-stable",
            "v5.6.4-stable",
            "WCv5.0-RC12",
            "WCv5.0-RC11",
            "WCv5.0-RC10",
            "v5.6.2-stable",
            "v5.6.3-stable",
            "v5.6.0-stable",
            "v5.5.4-stable",
            "v5.5.3-stable",
            "v5.5.2-stable",
            "v5.5.1-stable",
            "v5.5.0-stable",
            "v5.4.0-stable",
            "v5.3.0-stable",
            "v5.2.0-stable",
            "v5.1.0-stable",
            "v5.0.0-stable",
            "WCv5.0-RC9",
            "v4.8.0-stable",
            "v4.7.1r",
            "v4.7.0-stable",
            "v4.6.0-stable",
            "v4.5.0-stable",
            "v4.4.0-stable",
            "v4.3.0-stable",
            "v4.2.0c",
            "v4.2.0-stable",
            "v4.1.0-stable",
            "v4.0.0-stable",
            "list",
            "v3.15.7-stable",
            "v3.15.6",
            "v3.15.5a",
            "v3.15.5-stable",
            "WCv4-rng-stable",
            "v3.15.3-stable",
            "l",
            "v3.15.0-stable",
            "v3.14.4",
            "v3.14.2",
            "v3.14.0b",
            "v3.14.0a",
            "v3.14.0-stable",
            "v3.13.3",
            "v3.13.2",
            "v3.13.0-stable",
            "v3.12.2-stable",
            "v3.12.0-stable",
            "v3.11.1-tls13-beta",
            "v3.11.0-stable",
            "v3.10.3",
            "v3.10.2-stable",
            "v3.10.0a",
            "v3.10.0-stable",
            "v3.9.10b"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-6291.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.336547222Z",
      "provider": "osv",
      "references": [
        "https://www.wolfssl.com/docs/security-vulnerabilities/",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/6xxx/CVE-2026-6291.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-6291",
        "https://github.com/wolfSSL/wolfssl/pull/10203",
        "https://github.com/wolfSSL/wolfssl"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-208"
        ],
        "cna_assigner": "wolfSSL",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/6xxx/CVE-2026-6291.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-6291",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517501,
  "published_at": "2026-06-25T16:41:42.232+00:00"
}