cifs: validate DFS referral string offsets
- 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.1.178, 6.6.145, 6.12.97, 6.18.40, 7.1.5
- 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
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: cifs: validate DFS referral string offsets parse_dfs_referrals() validates that the response header and referral array fit in the received buffer, but each referral also contains string offsets supplied by the server. Those offsets are used to compute the DfsPath and NetworkAddress string pointers without checking whether they still point inside the response buffer. A malformed referral can therefore make the computed pointer exceed the end of the buffer. The resulting negative max_len is then passed to cifs_strndup_from_utf16(), and the non-Unicode path forwards it to kstrndup() as a size_t, allowing strnlen() to read out of bounds. Validate each string offset before deriving the string pointer.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 4ecce920e13ace16a5ba45efe8909946c28fb2ad · fixed in 76c607b9353d377b1d1b11db50e743eee0ccf658; From 4ecce920e13ace16a5ba45efe8909946c28fb2ad · fixed in d64b6be5740ce230aca184d8d224c75d9866045d; From 4ecce920e13ace16a5ba45efe8909946c28fb2ad · fixed in 929a85932d14190988f1eafd6ee8cc68d66ace0b; From 4ecce920e13ace16a5ba45efe8909946c28fb2ad · fixed in b784cd1c24d89bf71be2efe1e948ff7c03371e57; From 4ecce920e13ace16a5ba45efe8909946c28fb2ad · fixed in c37abc99bb3de3d3219ecef253d649f74117fd83; From 4ecce920e13ace16a5ba45efe8909946c28fb2ad · fixed in 027a84ac6b50c12ef767c15abfc58aa865820e9e
- Linux Linux
4.11
- KernelLinux
From 4.11.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5