{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-68453",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-07-30T09:28:09.395Z",
        "datePublished": "2026-08-13T13:59:56.036Z",
        "dateUpdated": "2026-08-17T05:05:53.346Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-17T05:05:53.346Z"
            },
            "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": {
                        "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"
                    },
                    "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's own process; no action by any other user or administrator is required.\nS:U - The out-of-bounds read stays within the kernel's 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."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/s390/crypto/pkey_cca.c",
                        "drivers/s390/crypto/zcrypt_ccamisc.c",
                        "drivers/s390/crypto/zcrypt_ccamisc.h"
                    ],
                    "versions": [
                        {
                            "version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
                            "lessThan": "a57fd7fcdb63e2d5ceac78bbe825ec986062a9da",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
                            "lessThan": "3b2abee2a678607ae27975bc6833785c2002df43",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
                            "lessThan": "36b230835b8a008266aad22168ca52afacc8a58d",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/s390/crypto/pkey_cca.c",
                        "drivers/s390/crypto/zcrypt_ccamisc.c",
                        "drivers/s390/crypto/zcrypt_ccamisc.h"
                    ],
                    "versions": [
                        {
                            "version": "5.4",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "5.4",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.18.44",
                            "lessThanOrEqual": "6.18.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.1.8",
                            "lessThanOrEqual": "7.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.2",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.4",
                                    "versionEndExcluding": "6.18.44"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.4",
                                    "versionEndExcluding": "7.1.8"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.4",
                                    "versionEndExcluding": "7.2"
                                }
                            ]
                        }
                    ]
                }
            ],
            "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"
            }
        }
    }
}