UBUNTU-CVE-2026-89632: Low severity ubuntu/linux vulnerability
In the Linux kernel, the following vulnerability has been resolved: smb: client: fix use-before-check of ReparseDataLength in reparsebufptr() reparsebufptr() reads buf->ReparseDataLength before checking that count covers the full fixed header: buf = (struct reparsedatabuffer )((u8 )io + off); len = sizeof(buf); / 8 bytes / rdlen = le16tocpu(buf->ReparseDataLength); / offset 4, 2 bytes / if (count < len || count < rdlen + len) / check comes after / struct reparsedatabuffer 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 iovlen 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In reparse_buf_ptr(), check that count >= sizeof(*buf) before reading ReparseDataLength, then separately verify that count covers the data region (count >= rdlen + len).