Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved:
crypto: qat - validate RSA CRT component lengths
The generic RSA key parser (rsa_helper.c) bounds each CRT component (p, q, dp, dq, qinv) by the modulus size n_sz, but qat_rsa_setkey_crt() allocates half-size DMA buffers (key_sz / 2) and right-aligns each component with:
memcpy(dst + half_key_sz - len, src, len)
When a CRT component is larger than half_key_sz the subtraction underflows and memcpy writes past the DMA buffer, causing memory corruption.
Add a len > half_key_sz check next to the existing !len check for each of the five CRT components so the driver falls back to the non-CRT path instead of writing out of bounds.
Details
- Affected product:
- AlmaLinux 9.2 ESU , Amazon Linux 2 ELS , CentOS 8.4 ELS , CentOS 8.5 ELS , CentOS Stream 8 ELS , Debian 10 ELS , Debian 11 ELS , Oracle Linux 7 ELS , TuxCare 9.6 ESU , Ubuntu 16.04 ELS , Ubuntu 18.04 ELS , Ubuntu 20.04 ELS
- Affected packages:
- kernel @ 4.18.0 (+11 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| AlmaLinux 10 | In Rollout |
61 kernels
|
| AlmaLinux 9 | In Rollout |
128 kernels
|
| Debian 11 | In Rollout |
44 kernels
|
| Debian 11 cloud | Released |
24 kernels
|
| Debian 12 | Released |
42 kernels
|
| Oracle Linux 10 | In Rollout |
47 kernels
|
| Oracle Linux 9 | In Rollout |
127 kernels
|
| Oracle Linux 9 UEK 7 | Planned | — |
| RHEL 10 | In Rollout |
61 kernels
|
| RHEL 9 | In Rollout |
126 kernels
|
| Rocky Linux 10 | In Rollout |
44 kernels
|
| Rocky Linux 9 | In Rollout |
103 kernels
|