cifs: validate DFS referral string offsets
28Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 9.4epss 0.6%
exploitation probability
0.6%top 53% of all CVEs
observed exploitation
nono source reports it
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H
Affected products
Linux · LinuxReferences
https://git.kernel.org/stable/c/027a84ac6b50c12ef767c15abfc58aa865820e9ehttps://git.kernel.org/stable/c/76c607b9353d377b1d1b11db50e743eee0ccf658https://git.kernel.org/stable/c/929a85932d14190988f1eafd6ee8cc68d66ace0bhttps://git.kernel.org/stable/c/b784cd1c24d89bf71be2efe1e948ff7c03371e57https://git.kernel.org/stable/c/c37abc99bb3de3d3219ecef253d649f74117fd83https://git.kernel.org/stable/c/d64b6be5740ce230aca184d8d224c75d9866045d