Skip to content
Heist/ feed
Back to feed
Medium

Heap buffer overflow in session parsing with wolfSSL_d2i_SSL_SESSION() function

Type: advisorySources: OSV

A heap-buffer-overflow vulnerability exists in wolfSSL's wolfSSL_d2i_SSL_SESSION() function. When deserializing session data with SESSION_CERTS enabled, certificate and session id lengths are read from an untrusted input without bounds validation, allowing an attacker to overflow fixed-size buffers and corrupt heap memory. A maliciously crafted session would need to be loaded from an external source to trigger this vulnerability. Internal sessions were not vulnerable.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-2646
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 07:46 UTC · Revision 1

Source evidence

Heap buffer overflow in session parsing with wolfSSL_d2i_SSL_SESSION() function

core-osv · Original source

Published 19 Mar 2026, 17:25 UTC

A heap-buffer-overflow vulnerability exists in wolfSSL's wolfSSL_d2i_SSL_SESSION() function. When deserializing session data with SESSION_CERTS enabled, certificate and session id lengths are read from an untrusted input without bounds validation, allowing an attacker to overflow fixed-size buffers and corrupt heap memory. A maliciously crafted session would need to be loaded from an external source to trigger this vulnerability. Internal sessions were not vulnerable.

osv:CVE-2026-2646
Complete source record
{
  "id": "5fe35ccdb37e54dd37d87c00f35f5eb10bfd09ba366ef9e881e261c2bc2b80c4",
  "url": "https://osv.dev/vulnerability/CVE-2026-2646",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Heap buffer overflow in session parsing with wolfSSL_d2i_SSL_SESSION() function",
    "summary": "A heap-buffer-overflow vulnerability exists in wolfSSL's wolfSSL_d2i_SSL_SESSION() function. When deserializing session data with SESSION_CERTS enabled, certificate and session id lengths are read from an untrusted input without bounds validation, allowing an attacker to overflow fixed-size buffers and corrupt heap memory. A maliciously crafted session would need to be loaded from an external source to trigger this vulnerability. Internal sessions were not vulnerable.",
    "evidence": "osv:CVE-2026-2646",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-2646",
      "aliases": [
        "CVE-2026-2646"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N/E:P"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/wolfssl/wolfssl",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "922d04b3568c6428a9fb905ddee3ef5a68db3108"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "5.8.4"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "cpe": "cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "5.9.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "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",
            "v3.9.10-stable",
            "v3.9.8",
            "v3.9.6w",
            "v3.9.6",
            "v3.9.1",
            "v3.9.0",
            "v3.8.0",
            "v3.7.3",
            "v3.7.1",
            "v3.7.0",
            "v3.6.9",
            "v3.6.8",
            "v3.4.6",
            "v3.4.2",
            "v3.4.0",
            "v3.3.3",
            "v3.3.0",
            "v3.2.6",
            "v3.2.4",
            "v3.2.0",
            "v2.9.4",
            "v2.9.2",
            "v2.9.1",
            "v0.5",
            "v2.9.0",
            "v2.8.6",
            "v2.8.5a",
            "v2.8.5",
            "v2.8.4",
            "v2.8.3",
            "v2.8.2",
            "v2.8.0",
            "v2.7.2",
            "v2.7.0",
            "v2.6.2",
            "v2.6.0",
            "v2.4.7",
            "v2.4.6",
            "v2.4.2",
            "v2.0.8",
            "v2.0.6",
            "v2.0.3",
            "v2.0.2",
            "v2.0rc3",
            "v2.0rc2b",
            "v2.0rc2",
            "v2.0rc1",
            "v1.9.0",
            "v1.8.8.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-2646.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:33.812452409Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/2xxx/CVE-2026-2646.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-2646",
        "https://github.com/wolfSSL/wolfssl/pull/9748",
        "https://github.com/wolfSSL/wolfssl/pull/9949",
        "https://github.com/wolfSSL/wolfssl"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-122"
        ],
        "cna_assigner": "wolfSSL",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/2xxx/CVE-2026-2646.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-2646",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 500957,
  "published_at": "2026-03-19T17:25:42.81+00:00"
}