Bug 2320447 (CVE-2024-49996) - CVE-2024-49996 kernel: cifs: Fix buffer overflow when parsing NFS reparse points
Summary: CVE-2024-49996 kernel: cifs: Fix buffer overflow when parsing NFS reparse points
Keywords:
Status: NEW
Alias: CVE-2024-49996
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On: 2320741
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-10-21 19:02 UTC by OSIDB Bzimport
Modified: 2024-12-18 18:36 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2024-10-21 19:02:38 UTC
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().


Note You need to log in before you can comment on or make changes to this bug.