CVE-2026-75803 (GCVE-0-2026-75803)

Vulnerability from cvelistv5 – Published: 2026-08-25 13:00 – Updated: 2026-08-25 13:00
VLAI
Title
AEAD Forgeries with Empty Ciphertext When Using EVP_Cipher()
Summary
Issue summary: ChaCha20-Poly1305 and AES-OCB decryption with an empty ciphertext can report success without verifying the supplied authentication tag when the operation is finalized by calling the EVP_Cipher() function. Impact summary: Applications calling EVP_Cipher() on an empty ciphertext and expecting the call to check the AEAD tag may accept forged messages. CWE: CWE-354 (Improper Validation of Integrity Check Value) Description: The EVP_Cipher() API call for AEAD ciphers behaves like a one shot encryption and decryption call. It also verifies the AEAD tag after the decryption operation. However for AES-OCB and ChaCha20-Poly1305 ciphers it skipped the AEAD tag verification when an empty ciphertext was passed to the function. The callers of this function might believe that a successful return indicates a valid AEAD tag for these ciphers, even when that has not truly been validated in this case. FIPS impact: no The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this CVE as the affected algorithms are not FIPS approved and thus not implemented in the FIPS module.
Severity
No CVSS data available.
CWE
  • CWE-354 - Improper Validation of Integrity Check Value
Impacted products
Vendor Product Version CPE status
OpenSSL OpenSSL Affected: 4.0.0 , < 4.0.2 (semver)
Affected: 3.6.0 , < 3.6.4 (semver)
Affected: 3.5.0 , < 3.5.8 (semver)
Affected: 3.4.0 , < 3.4.7 (semver)
Affected: 3.0.0 , < 3.0.22 (semver)
guessed Create a notification for this product.
Date Public
2026-08-25 15:57
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "OpenSSL",
          "vendor": "OpenSSL",
          "versions": [
            {
              "lessThan": "4.0.2",
              "status": "affected",
              "version": "4.0.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.6.4",
              "status": "affected",
              "version": "3.6.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.5.8",
              "status": "affected",
              "version": "3.5.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.4.7",
              "status": "affected",
              "version": "3.4.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.0.22",
              "status": "affected",
              "version": "3.0.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "reporter",
          "value": "Billy Brumley (Rochester Institute of Technology)"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Billy Brumley (Rochester Institute of Technology)"
        }
      ],
      "datePublic": "2026-08-25T15:57:42.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "Issue summary: ChaCha20-Poly1305 and AES-OCB decryption with an empty\u003cbr\u003eciphertext can report success without verifying the supplied authentication\u003cbr\u003etag when the operation is finalized by calling the EVP_Cipher() function.\u003cbr\u003e\u003cbr\u003eImpact summary: Applications calling EVP_Cipher() on an empty ciphertext and\u003cbr\u003eexpecting the call to check the AEAD tag may accept forged messages.\u003cbr\u003e\u003cbr\u003eCWE: CWE-354 (Improper Validation of Integrity Check Value)\u003cbr\u003e\u003cbr\u003eDescription: The EVP_Cipher() API call for AEAD ciphers behaves like a one\u003cbr\u003eshot encryption and decryption call. It also verifies the AEAD tag after the\u003cbr\u003edecryption operation. However for AES-OCB and ChaCha20-Poly1305 ciphers\u003cbr\u003eit skipped the AEAD tag verification when an empty ciphertext was passed to\u003cbr\u003ethe function. The callers of this function might believe that a successful\u003cbr\u003ereturn indicates a valid AEAD tag for these ciphers, even when that has not\u003cbr\u003etruly been validated in this case.\u003cbr\u003e\u003cbr\u003eFIPS impact: no\u003cbr\u003eThe FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this CVE\u003cbr\u003eas the affected algorithms are not FIPS approved and thus not implemented\u003cbr\u003ein the FIPS module."
            }
          ],
          "value": "Issue summary: ChaCha20-Poly1305 and AES-OCB decryption with an empty\nciphertext can report success without verifying the supplied authentication\ntag when the operation is finalized by calling the EVP_Cipher() function.\n\nImpact summary: Applications calling EVP_Cipher() on an empty ciphertext and\nexpecting the call to check the AEAD tag may accept forged messages.\n\nCWE: CWE-354 (Improper Validation of Integrity Check Value)\n\nDescription: The EVP_Cipher() API call for AEAD ciphers behaves like a one\nshot encryption and decryption call. It also verifies the AEAD tag after the\ndecryption operation. However for AES-OCB and ChaCha20-Poly1305 ciphers\nit skipped the AEAD tag verification when an empty ciphertext was passed to\nthe function. The callers of this function might believe that a successful\nreturn indicates a valid AEAD tag for these ciphers, even when that has not\ntruly been validated in this case.\n\nFIPS impact: no\nThe FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this CVE\nas the affected algorithms are not FIPS approved and thus not implemented\nin the FIPS module."
        }
      ],
      "metrics": [
        {
          "format": "other",
          "other": {
            "content": {
              "text": "Low"
            },
            "type": "https://openssl-library.org/policies/general/security-policy/"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-354",
              "description": "Improper Validation of Integrity Check Value",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-25T13:00:25.067Z",
        "orgId": "3a12439a-ef3a-4c79-92e6-6081a721f1e5",
        "shortName": "openssl"
      },
      "references": [
        {
          "name": "OpenSSL Advisory",
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://openssl-library.org/news/secadv/20260825.txt"
        },
        {
          "name": "4.0.2 git commit",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/openssl/openssl/commit/6c7aa6f8f6449b7fe0137ee8be65fcd239bd7d6a"
        },
        {
          "name": "3.6.4 git commit",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/openssl/openssl/commit/3621257986e27e540bf96a11570929a6e5a9e05b"
        },
        {
          "name": "3.5.8 git commit",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/openssl/openssl/commit/bdeb0cd994d915342787f117ee75044f0dc36f34"
        },
        {
          "name": "3.4.7 git commit",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/openssl/openssl/commit/bf95f5f772e9362f87b25cfa2f8cb15d984865b9"
        },
        {
          "name": "3.0.22 git commit",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/openssl/openssl/commit/119ab9555dc62275bbd71f6f49529b1a44feba42"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "title": "AEAD Forgeries with Empty Ciphertext When Using EVP_Cipher()",
      "x_generator": {
        "engine": "Vulnogram 0.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "3a12439a-ef3a-4c79-92e6-6081a721f1e5",
    "assignerShortName": "openssl",
    "cveId": "CVE-2026-75803",
    "datePublished": "2026-08-25T13:00:25.067Z",
    "dateReserved": "2026-08-18T09:34:32.659Z",
    "dateUpdated": "2026-08-25T13:00:25.067Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-75803\",\"sourceIdentifier\":\"openssl-security@openssl.org\",\"published\":\"2026-08-25T13:19:29.570\",\"lastModified\":\"2026-08-25T13:19:29.570\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Issue summary: ChaCha20-Poly1305 and AES-OCB decryption with an empty\\nciphertext can report success without verifying the supplied authentication\\ntag when the operation is finalized by calling the EVP_Cipher() function.\\n\\nImpact summary: Applications calling EVP_Cipher() on an empty ciphertext and\\nexpecting the call to check the AEAD tag may accept forged messages.\\n\\nCWE: CWE-354 (Improper Validation of Integrity Check Value)\\n\\nDescription: The EVP_Cipher() API call for AEAD ciphers behaves like a one\\nshot encryption and decryption call. It also verifies the AEAD tag after the\\ndecryption operation. However for AES-OCB and ChaCha20-Poly1305 ciphers\\nit skipped the AEAD tag verification when an empty ciphertext was passed to\\nthe function. The callers of this function might believe that a successful\\nreturn indicates a valid AEAD tag for these ciphers, even when that has not\\ntruly been validated in this case.\\n\\nFIPS impact: no\\nThe FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this CVE\\nas the affected algorithms are not FIPS approved and thus not implemented\\nin the FIPS module.\"}],\"affected\":[{\"source\":\"openssl-security@openssl.org\",\"affectedData\":[{\"vendor\":\"OpenSSL\",\"product\":\"OpenSSL\",\"defaultStatus\":\"unaffected\",\"versions\":[{\"version\":\"4.0.0\",\"lessThan\":\"4.0.2\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.6.0\",\"lessThan\":\"3.6.4\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.5.0\",\"lessThan\":\"3.5.8\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.4.0\",\"lessThan\":\"3.4.7\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"3.0.0\",\"lessThan\":\"3.0.22\",\"versionType\":\"semver\",\"status\":\"affected\"}]}]}],\"metrics\":{},\"weaknesses\":[{\"source\":\"openssl-security@openssl.org\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-354\"}]}],\"references\":[{\"url\":\"https://github.com/openssl/openssl/commit/119ab9555dc62275bbd71f6f49529b1a44feba42\",\"source\":\"openssl-security@openssl.org\"},{\"url\":\"https://github.com/openssl/openssl/commit/3621257986e27e540bf96a11570929a6e5a9e05b\",\"source\":\"openssl-security@openssl.org\"},{\"url\":\"https://github.com/openssl/openssl/commit/6c7aa6f8f6449b7fe0137ee8be65fcd239bd7d6a\",\"source\":\"openssl-security@openssl.org\"},{\"url\":\"https://github.com/openssl/openssl/commit/bdeb0cd994d915342787f117ee75044f0dc36f34\",\"source\":\"openssl-security@openssl.org\"},{\"url\":\"https://github.com/openssl/openssl/commit/bf95f5f772e9362f87b25cfa2f8cb15d984865b9\",\"source\":\"openssl-security@openssl.org\"},{\"url\":\"https://openssl-library.org/news/secadv/20260825.txt\",\"source\":\"openssl-security@openssl.org\"}]}}"
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…