CVE-2026-80708: s390/zcrypt: Fix missing mem scrub at clear key import in cca_clr2cipherkey()
In the Linux kernel, the following vulnerability has been resolved:
s390/zcrypt: Fix missing mem scrub at clear key import in ccaclr2cipherkey()
The helper function ipcprbhelper() uses internal buffer memory for building and processing CPRBs. After use this buffer was never scrubbed which could lead to leaving for example clear key material in memory which could be exposed via tricky reuse of this same memory.
Extend the ipcprbhelper() function with another parameter 'scrub' used to steer scrubbing of this buffer. So now the caller has the opportunity to decide if scrubbing is needed or not.
Extend the clear key to secure key token import process in function ccaclr2cipherkey() to tell the helper function from above to scrub the cprb buffer when the clear key value is part of the request data.
Add explicit scrubbing on return from function ccaclr2cipherkey() for the random EXOR buffer and the cprb buffer.
Overall this cleans the internal used buffer in case of clear key import to prevent sensitive data to get exposed.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Extend _ip_cprb_helper() with an additional parameter named 'scrub' to steer whether its internal CPRB buffer should be scrubbed, and ensure missing memory scrubbing is added for clear key import in cca_clr2cipherkey() so that sensitive clear key material is not left in the cprb buffer (and related internal buffers) after use.
Linux kernel s390/zcrypt mem scrub at clear key import in cca_clr2cipherkey() = enabled
Event History
Frequently Asked Questions
Which systems and operations are exposed to this issue?
The issue affects Linux kernel s390/zcrypt clear-key-to-secure-key token import processing in cca_clr2cipherkey(). Systems not performing this clear key import path are not described as exposed by the available information.
What would be required to expose the sensitive data?
Clear key material or related sensitive values would need to remain in internal CPRB or random EXOR buffers after processing, followed by reuse of that memory in a way that exposes its prior contents. The description characterizes this as potentially requiring tricky reuse of the same memory.
What does the fix change to reduce exposure?
The fix causes the CPRB buffer to be scrubbed when clear key data is included in the request and explicitly scrubs the random EXOR and CPRB buffers when cca_clr2cipherkey() returns. This prevents sensitive material from remaining in those internal buffers after clear key import.