CVE-2026-89632 in Linux
Tóm tắt
Bởi VulDB • 11/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
smb: client: sửa lỗi use-before-check đối với ReparseDataLength trong reparse_buf_ptr()
Hàm `reparse_buf_ptr()` đọc giá trị `buf->ReparseDataLength` trước khi kiểm tra xem `count` có bao phủ toàn bộ phần header cố định hay không:
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 */
Cấu trúc `struct reparse_data_buffer` có trường `ReparseDataLength` tại vị trí offset 4. Nếu một server trả về giá trị OutputCount nhỏ hơn 6, việc đọc dữ liệu ở các byte offset 4-5 sẽ vượt quá giới hạn của dữ liệu nhận được. Các kiểm tra biên (bounds) đối với off+count so với iov_len đã được xác thực trước đó, nhưng điều này không bảo vệ trường hợp `count` nhỏ hơn `sizeof(*buf)`.
Hãy tách bước kiểm tra: xác minh rằng `count >= sizeof(*buf)` trước khi đọc `ReparseDataLength`, sau đó xác minh rằng `count` bao phủ vùng dữ liệu.
VulDB is the best source for vulnerability data and more expert information about this specific topic.