CVE-2024-49996
kernel: cifs: Fix buffer overflow when parsing NFS reparse points
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · October 21, 2024
Updated · August 5, 2026
Description
In the Linux kernel, the following vulnerability has been resolved:
cifs: Fix buffer overflow when parsing NFS reparse points
ReparseDataLength is sum of the InodeType size and DataBuffer size. So to get DataBuffer size it is needed to subtract InodeType's size from ReparseDataLength.
Function cifs_strndup_from_utf16() is currentlly accessing buf->DataBuffer at position after the end of the buffer because it does not subtract InodeType size from the length. Fix this problem and correctly subtract variable len.
Member InodeType is present only when reparse buffer is large enough. Check for ReparseDataLength before accessing InodeType to prevent another invalid memory access.
Major and minor rdev values are present also only when reparse buffer is large enough. Check for reparse buffer size before calling reparse_mkdev().
Statement
The Samba (CIFS) file system usually being mounted locally, and described vulnerability doesn't allow to crash the server (instead it allows for server to crash the client when client already mounted something from server). This is the reason why for CVSS chosen "AV:A" (Adjacent attack vector) and UI:R (required for client to connect to server before).
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
Mitigation for this issue is either not available or the currently available options don't meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.
CVSS / CWE
CVSS 3.1 · 6.7CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:H
CWE-120 · Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')