CVE-2026-80545: s390/zcrypt: Improve EP11 CPRB length and overflow checks
In the Linux kernel, the following vulnerability has been resolved:
s390/zcrypt: Improve EP11 CPRB length and overflow checks
The xcrbmsgtotype6ep11cprbmsgx() function lacks proper input validation, creating security vulnerabilities: 1. Missing minimum size validation: The ep11cprb structure and subsequent payload fields (pldtag, pldlenfmt) are copied from userspace without verifying sufficient buffer length. 2. Arithmetic overflow in length calculations: CEIL4 alignment could overflow, bypassing size checks and enabling buffer overflows. 3. The payload is asn1 encoded but the function just uses a simple c struct overlay to access some fields of the payload.
Fix by using sizet for length calculations, adding U32MAX boundary checks after alignment, and validating minimum request size and minimum reply size before copying from userspace. Do a very simple asn1 parsing of the payload up to the function value field.
Affected Software
Event History
Frequently Asked Questions
What input would an attacker need to provide to reach the vulnerable code path?
The issue is triggered by EP11 CPRB data supplied from userspace to xcrb_msg_to_type6_ep11cprb_msgx(). Malformed requests can use insufficiently sized buffers or lengths that cause aligned length calculations to overflow.
What protections does the fix add?
The fix validates minimum request and reply sizes before copying data from userspace, uses size_t for length calculations, and rejects aligned lengths beyond U32_MAX. It also performs basic ASN.1 parsing through the function-value field rather than relying only on a C structure overlay.