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().
Metrics
Affected Vendors & Products
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-4075-1 | linux security update |
Debian DLA |
DLA-4076-1 | linux-6.1 security update |
Ubuntu USN |
USN-7276-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7277-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7301-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7303-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7303-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7303-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7304-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7310-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7311-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7384-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7384-2 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7385-1 | Linux kernel (IBM) vulnerabilities |
Ubuntu USN |
USN-7386-1 | Linux kernel (OEM) vulnerabilities |
Ubuntu USN |
USN-7387-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7387-2 | Linux kernel (FIPS) vulnerabilities |
Ubuntu USN |
USN-7387-3 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-7388-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7389-1 | Linux kernel (NVIDIA Tegra) vulnerabilities |
Ubuntu USN |
USN-7390-1 | Linux kernel (Xilinx ZynqMP) vulnerabilities |
Ubuntu USN |
USN-7391-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7392-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7392-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7392-3 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-7392-4 | Linux kernel (AWS FIPS) vulnerabilities |
Ubuntu USN |
USN-7393-1 | Linux kernel (FIPS) vulnerabilities |
Ubuntu USN |
USN-7401-1 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-7403-1 | Linux kernel (HWE) vulnerabilities |
Ubuntu USN |
USN-7407-1 | Linux kernel (HWE) vulnerabilities |
Ubuntu USN |
USN-7413-1 | Linux kernel (IoT) vulnerabilities |
Ubuntu USN |
USN-7421-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7458-1 | Linux kernel (IBM) vulnerabilities |
Ubuntu USN |
USN-7459-1 | Linux kernel (Intel IoTG) vulnerabilities |
Ubuntu USN |
USN-7459-2 | Linux kernel (GCP) vulnerabilities |
Ubuntu USN |
USN-7463-1 | Linux kernel (IBM) vulnerabilities |
Ubuntu USN |
USN-7468-1 | Linux kernel (Azure, N-Series) vulnerabilities |
Ubuntu USN |
USN-7539-1 | Linux kernel (Raspberry Pi) vulnerabilities |
Ubuntu USN |
USN-7540-1 | Linux kernel (Raspberry Pi) vulnerabilities |
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Mon, 03 Nov 2025 21:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Sat, 14 Dec 2024 21:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Fri, 25 Oct 2024 20:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Linux
Linux linux Kernel |
|
| Weaknesses | CWE-120 | |
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Linux
Linux linux Kernel |
|
| Metrics |
cvssV3_1
|
cvssV3_1
|
Tue, 22 Oct 2024 14:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Tue, 22 Oct 2024 13:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
cvssV3_1
|
Mon, 21 Oct 2024 18:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| 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(). | |
| Title | cifs: Fix buffer overflow when parsing NFS reparse points | |
| References |
|
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-11-03T20:42:50.666Z
Reserved: 2024-10-21T12:17:06.056Z
Link: CVE-2024-49996
Updated: 2024-10-22T13:30:39.403Z
Status : Modified
Published: 2024-10-21T18:15:19.760
Modified: 2025-11-03T21:16:45.107
Link: CVE-2024-49996
OpenCVE Enrichment
No data.
Debian DLA
Ubuntu USN