Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved:
nvme-tcp: fix host memory disclosure on R2T for a read command
nvme_tcp_handle_r2t() does not check the direction of the request the R2T refers to. A malicious controller can send an R2T for a READ and the host will answer it: nvme_tcp_setup_h2c_data_pdu() builds the H2CData header and nvme_tcp_try_send_data() sends the request’s data buffer. That buffer is the READ destination, so its contents go to the controller.
The command then completes normally and nothing is logged.
Against a test controller that answers every READ with an R2T, a 4096 byte buffered read returned all 4096 bytes, split over two R2Ts. The pages contained stale kernel data, including an array of struct page pointers.
Reject an R2T for a request that is not a write.
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 , TuxCare 9.8 ESU , Ubuntu 20.04 ELS
- Affected packages:
- linux @ 5.10.259 (+10 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| AlmaLinux 10 | Released |
69 kernels
|
| AlmaLinux 8 | Released |
1 kernel
|
| CentOS 8 | Released |
26 kernels
|
| CloudLinux OS 7h | Released |
119 kernels
|
| CloudLinux OS 8 | In Rollout |
1 kernel
|
| Debian 12 | Planned | — |
| Debian 13 | Planned | — |
| Oracle Linux 10 | Released |
53 kernels
|
| Oracle Linux 8 | Released |
147 kernels
|
| RHEL 10 | Released |
70 kernels
|
| RHEL 8 | Released |
148 kernels
|
| RHEL 9 | Planned | — |
| Rocky Linux 10 | Released |
53 kernels
|
| Rocky Linux 8 | Released |
115 kernels
|