CVE-2024-56619

nilfs2: fix potential out-of-bounds memory access in nilfs_find_entry()

State
Published
Severity
7.8 High
Published
Dec 27, 2024
Updated
Aug 5, 2026
Reserved
Dec 27, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

nilfs2: fix potential out-of-bounds memory access in nilfs_find_entry()

Syzbot reported that when searching for records in a directory where the inode's i_size is corrupted and has a large value, memory access outside the folio/page range may occur, or a use-after-free bug may be detected if KASAN is enabled.

This is because nilfs_last_byte(), which is called by nilfs_find_entry() and others to calculate the number of valid bytes of directory data in a page from i_size and the page index, loses the upper 32 bits of the 64-bit size information due to an inappropriate type of local variable to which the i_size value is assigned.

This caused a large byte offset value due to underflow in the end address calculation in the calling nilfs_find_entry(), resulting in memory access that exceeds the folio/page size.

Fix this issue by changing the type of the local variable causing the bit loss from "unsigned int" to "u64". The return value of nilfs_last_byte() is also of type "unsigned int", but it is truncated so as not to exceed PAGE_SIZE and no bit loss occurs, so no change is required.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 2ba466d74ed74f073257f86e61519cb8f8f46184 to before 09d6d05579fd46e61abf6e457bb100ff11f3a9d3Affected
  • 2ba466d74ed74f073257f86e61519cb8f8f46184 to before e3732102a9d638d8627d14fdf7b208462f0520e0Affected
  • 2ba466d74ed74f073257f86e61519cb8f8f46184 to before 48eb6e7404948032bbe811c5affbe39f6b316951Affected
  • 2ba466d74ed74f073257f86e61519cb8f8f46184 to before 5af8366625182f01f6d8465c9a3210574673af57Affected
  • 2ba466d74ed74f073257f86e61519cb8f8f46184 to before c3afea07477baccdbdec4483f8d5e59d42a3f67fAffected
  • 2ba466d74ed74f073257f86e61519cb8f8f46184 to before 31f7b57a77d4c82a34ddcb6ff35b5aa577ef153eAffected
  • 2ba466d74ed74f073257f86e61519cb8f8f46184 to before 985ebec4ab0a28bb5910c3b1481a40fbf7f9e61dAffected
LinuxLinux
  • 2.6.30Affected
  • before 2.6.30Not affected
  • 5.4.287 through 5.4.*Not affected
  • 5.10.231 through 5.10.*Not affected
  • 5.15.174 through 5.15.*Not affected
  • 6.1.120 through 6.1.*Not affected
  • 6.6.66 through 6.6.*Not affected
  • 6.12.5 through 6.12.*Not affected
  • 6.13 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.