CVE-2026-68453 (GCVE-0-2026-68453)

Vulnerability from cvelistv5 – Published: 2026-08-13 13:59 – Updated: 2026-08-17 05:05
VLAI
Title
s390/zcrypt: Fix buffer over-read in cca_cipher2protkey
Summary
In the Linux kernel, the following vulnerability has been resolved: s390/zcrypt: Fix buffer over-read in cca_cipher2protkey Add validation of both the actual key buffer size and token length fields in all the cca_check_sec*token() functions. Additionally check in cca_gencipherkey() for possible underflow with returned key size. The CCA token structures contain user-controlled len fields that were used in operations without proper validation against both the actual buffer size and minimum token structure size. An attacker could set this field larger than the actual buffer size, leading to reading beyond buffer boundaries. This may result in a kernel crash or exposure of memory via sending this as part of a request down to the crypto card. Also an attacker could have used a very small len value and thus enforce a buffer under-run which may produce similar effects as a over-read. So now a key must - key buf length must be at least sizeof the token struct - the key len field inside the token must fit into the range of sizeof key token struct ... key buf length
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd , < a57fd7fcdb63e2d5ceac78bbe825ec986062a9da (git)
Affected: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd , < 3b2abee2a678607ae27975bc6833785c2002df43 (git)
Affected: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd , < 36b230835b8a008266aad22168ca52afacc8a58d (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.4
Unaffected: 0 , < 5.4 (semver)
Unaffected: 6.18.44 , ≤ 6.18.* (semver)
Unaffected: 7.1.8 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/s390/crypto/pkey_cca.c",
            "drivers/s390/crypto/zcrypt_ccamisc.c",
            "drivers/s390/crypto/zcrypt_ccamisc.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a57fd7fcdb63e2d5ceac78bbe825ec986062a9da",
              "status": "affected",
              "version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
              "versionType": "git"
            },
            {
              "lessThan": "3b2abee2a678607ae27975bc6833785c2002df43",
              "status": "affected",
              "version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
              "versionType": "git"
            },
            {
              "lessThan": "36b230835b8a008266aad22168ca52afacc8a58d",
              "status": "affected",
              "version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/s390/crypto/pkey_cca.c",
            "drivers/s390/crypto/zcrypt_ccamisc.c",
            "drivers/s390/crypto/zcrypt_ccamisc.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.4"
            },
            {
              "lessThan": "5.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.44",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.8",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/zcrypt: Fix buffer over-read in cca_cipher2protkey\n\nAdd validation of both the actual key buffer size and token length\nfields in all the cca_check_sec*token() functions. Additionally check\nin cca_gencipherkey() for possible underflow with returned key size.\n\nThe CCA token structures contain user-controlled len fields that\nwere used in operations without proper validation against both the\nactual buffer size and minimum token structure size. An attacker\ncould set this field larger than the actual buffer size, leading to\nreading beyond buffer boundaries. This may result in a kernel crash or\nexposure of memory via sending this as part of a request down to the\ncrypto card. Also an attacker could have used a very small len value\nand thus enforce a buffer under-run which may produce similar effects\nas a over-read.\n\nSo now a key must\n- key buf length must be at least sizeof the token struct\n- the key len field inside the token must fit into the range of\n  sizeof key token struct ... key buf length"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable code is reached only through ioctls on the /dev/pkey misc device (PKEY_VERIFYKEY2, PKEY_KBLOB2PROTK2/3) or via in-kernel paes/dm-crypt setkey calls, all of which require local access to the s390 system. There is no network-facing consumer of CCA key tokens.\nAC:L - The attacker fully controls both the allocation size (memdup_user of an attacker-chosen keylen, minimum 8 bytes) and the token header bytes, so the out-of-bounds read is triggered deterministically on every ioctl with no race, timing, or uncontrolled memory-layout dependency; the adjacent slab contents can be groomed with further 8-byte key blobs.\nPR:L - pkey_api.c registers the misc device with .mode = 0666 and pkey_unlocked_ioctl() performs no capable()/CAP_* check whatsoever, so any unprivileged local user can open /dev/pkey and issue the affected ioctls; pkey_handler_request_modules() even auto-loads the pkey-cca handler on demand.\nUI:N - Exploitation is a self-contained sequence of ioctl() calls made by the attacker\u0027s own process; no action by any other user or administrator is required.\nS:U - The out-of-bounds read stays within the kernel\u0027s own address space and the impact is confined to the kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - An 8-byte key buffer causes reads up to ~48 bytes past the allocation into neighbouring slab objects; cca_verifykey() returns OOB bytes to userspace via *keybitsize and the checks form a byte oracle, while cca_gencipherkey() used an unvalidated len to copy far beyond the 512-byte CPRB param block into a user-visible buffer, and token data is also transmitted to the crypto adapter.\nI:N - The defect is purely an over-read/under-run of length fields; no out-of-bounds write, freed-object reuse, or type confusion occurs, so no kernel data can be modified through this path.\nA:H - The commit message states the over-read \"may result in a kernel crash\"; reading tens of bytes past a minimally sized kmalloc object can fault or trip KASAN/KFENCE, and the unbounded copy in cca_gencipherkey can walk far outside the parameter block, oopsing the kernel from an unprivileged, endlessly repeatable ioctl."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:05:53.346Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/a57fd7fcdb63e2d5ceac78bbe825ec986062a9da"
        },
        {
          "url": "https://git.kernel.org/stable/c/3b2abee2a678607ae27975bc6833785c2002df43"
        },
        {
          "url": "https://git.kernel.org/stable/c/36b230835b8a008266aad22168ca52afacc8a58d"
        }
      ],
      "title": "s390/zcrypt: Fix buffer over-read in cca_cipher2protkey",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-68453",
    "datePublished": "2026-08-13T13:59:56.036Z",
    "dateReserved": "2026-07-30T09:28:09.395Z",
    "dateUpdated": "2026-08-17T05:05:53.346Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-68453",
      "date": "2026-08-24",
      "epss": "0.00127",
      "percentile": "0.02566"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-23T14:59:14.000Z",
      "cve": "CVE-2026-68453",
      "id": "msrc_CVE-2026-68453",
      "initial_release_date": "2026-08-14T19:12:51.000Z",
      "product_status:known_not_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "s390/zcrypt: Fix buffer over-read in cca_cipher2protkey",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-68453.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-68453\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-13T15:19:58.093\",\"lastModified\":\"2026-08-17T06:17:54.427\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ns390/zcrypt: Fix buffer over-read in cca_cipher2protkey\\n\\nAdd validation of both the actual key buffer size and token length\\nfields in all the cca_check_sec*token() functions. Additionally check\\nin cca_gencipherkey() for possible underflow with returned key size.\\n\\nThe CCA token structures contain user-controlled len fields that\\nwere used in operations without proper validation against both the\\nactual buffer size and minimum token structure size. An attacker\\ncould set this field larger than the actual buffer size, leading to\\nreading beyond buffer boundaries. This may result in a kernel crash or\\nexposure of memory via sending this as part of a request down to the\\ncrypto card. Also an attacker could have used a very small len value\\nand thus enforce a buffer under-run which may produce similar effects\\nas a over-read.\\n\\nSo now a key must\\n- key buf length must be at least sizeof the token struct\\n- the key len field inside the token must fit into the range of\\n  sizeof key token struct ... key buf length\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/s390/crypto/pkey_cca.c\",\"drivers/s390/crypto/zcrypt_ccamisc.c\",\"drivers/s390/crypto/zcrypt_ccamisc.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd\",\"lessThan\":\"a57fd7fcdb63e2d5ceac78bbe825ec986062a9da\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd\",\"lessThan\":\"3b2abee2a678607ae27975bc6833785c2002df43\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd\",\"lessThan\":\"36b230835b8a008266aad22168ca52afacc8a58d\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/s390/crypto/pkey_cca.c\",\"drivers/s390/crypto/zcrypt_ccamisc.c\",\"drivers/s390/crypto/zcrypt_ccamisc.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.4\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.4\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.44\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.8\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H\",\"baseScore\":7.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.2}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/36b230835b8a008266aad22168ca52afacc8a58d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/3b2abee2a678607ae27975bc6833785c2002df43\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a57fd7fcdb63e2d5ceac78bbe825ec986062a9da\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-13T23:29:23+00:00",
      "cve": "CVE-2026-68453",
      "id": "CVE-2026-68453",
      "initial_release_date": "2026-08-13T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: s390/zcrypt: Fix buffer over-read in cca_cipher2protkey",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-68453.json",
      "version": "3"
    }
  }
}



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…