CVE-2026-68453 (GCVE-0-2026-68453)
Vulnerability from cvelistv5
Published
2026-08-13 13:59
Modified
2026-08-17 05:05
Severity ?
VLAI Severity ?
EPSS score ?
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
References
Impacted products
{
"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"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…