Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix use-before-check of ReparseDataLength in reparse_buf_ptr()
reparse_buf_ptr() reads buf->ReparseDataLength before checking that count covers the full fixed header:
buf = (struct reparse_data_buffer *)((u8 *)io + off); len = sizeof(buf); / 8 bytes / rdlen = le16_to_cpu(buf->ReparseDataLength); / offset 4, 2 bytes */
if (count < len || count < rdlen + len) /* check comes after */
struct reparse_data_buffer has ReparseDataLength at offset 4. If a server returns OutputCount < 6, the read at offset 4-5 reaches past the end of the received data. The off+count bounds against iov_len were already validated, but that does not protect against count being smaller than sizeof(*buf).
Split the check: verify count >= sizeof(*buf) before reading ReparseDataLength, then verify count covers the data region.
Details
- Affected product:
- AlmaLinux 9.2 ESU , CentOS 8.4 ELS , CentOS 8.5 ELS , CentOS Stream 8 ELS , TuxCare 9.6 ESU , TuxCare 9.8 ESU
- Affected packages:
- kernel @ 4.18.0 (+5 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| Ubuntu 26.04 | Planned | — |