smb: client: fix reparse buffer bounds in cifs_query_reparse_point()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.112, 6.16, 6.18.54, 7.2.8
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: smb: client: fix reparse buffer bounds in cifs_query_reparse_point() In cifs_query_reparse_point(), the start >= end check before casting to struct reparse_data_buffer * only ensures the start pointer is within the response. It fails to verify that there is enough space remaining for the fixed 8-byte header of the structure. If a server provides a DataOffset that leaves less than 8 bytes remaining, the check passes, but subsequent reads of ReparseTag and ReparseDataLength will occur out-of-bounds. Fix this by ensuring the remaining space is at least the size of the reparse_data_buffer structure before accessing its fields.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 848d78e3625f15de09d34a562dc49a98b78a62f3 · fixed in aa00eead258e4fe8158a3a3e2d65facf06274abd; From 48ca7139ab7f0bbed95ff7a901ea497017769657 · fixed in 3d67f155fe5813cfb02a551a9a12d6ea06a902e9; From 56e84c64fc257a95728ee73165456b025c48d408 · fixed in d1152c96a3002e3df6b9a5b007cecaa7b19b4f79; From 56e84c64fc257a95728ee73165456b025c48d408 · fixed in 8dc5db3a0e583ea8d31d0613cefd99e93e095c3c; From 56e84c64fc257a95728ee73165456b025c48d408 · fixed in 5f0306e731e2f46e91419eae57eee3a241c055e0; From 6.6.94 · fixed in 6.6.160; From 6.12.34 · fixed in 6.12.112; From 6.15.3 · fixed in 6.16
- Linux Linux
6.16
- KernelLinux
fixed in 6.6.160; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.16.0 · fixed in 7.2.8