Skip to content
CVE PROGRAM SOURCE RECORD8.2 High

CVE-2026-89632

smb: client: fix use-before-check of ReparseDataLength in reparse_buf_ptr()

Description

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • a158bb66b1373866d9fd5997565a58a573085539 to < b70bc592afd19732e2e4563300ebe8f974280365affected
  • 67ec9949b0dfe78c99e110dd975eb7dc5645630c to < 711cf71300d7992f450600df8864917d3538679faffected
  • 67ec9949b0dfe78c99e110dd975eb7dc5645630c to < 05f78e6cf34ea3a285053bd5999e08e8ac298bd5affected
  • 6.6.32 to < 6.6.160affected

Linux Linux

Default version status: affected

  • 6.8affected
  • 0 to < 6.8unaffected
  • 6.6.160 to ≤ 6.6.*unaffected
  • 7.2.4 to ≤ 7.2.*unaffected
  • 7.3 to ≤ *unaffected

References