Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: fanotify: fix use-after-free of file range info fsnotify_pre_content() builds its file_range on the triggering task's stack. fanotify_alloc_perm_event() saves a pointer to range.pos in the heap-allocated permission event so copy_range_info_to_user() can report the offset later. The event reader can set the event state to FAN_EVENT_REPORTED and then sleep while preparing the file descriptor. If a signal interrupts the triggering task at that point, fanotify_get_response() changes the state to FAN_EVENT_CANCELED and returns. This unwinds the file_range stack frame while the reader still owns the event. The reader then dereferences pevent->ppos and copies the stale stack value to userspace. KASAN reported: BUG: KASAN: use-after-free in fanotify_read+0x293e/0x2970 Read of size 8 at addr ffff88811434fc50 by task fanotify_inotif/95 Call Trace: fanotify_read+0x293e/0x2970 vfs_read+0x177/0xa20 ksys_read+0xf7/0x1c0 do_syscall_64+0xf9/0x540 entry_SYSCALL_64_after_hwframe+0x77/0x7f Store the range position directly in the permission event and use FANOTIFY_NO_RANGE when range information is unavailable. The event remains alive until the reader finishes, so the reported offset no longer depends on the triggering task's stack.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 870499bc1d4dc04cba1f63dd5e7bc02b983e2458 before 66aa9a9e6481bfa512ee5b6380eaaec455a954d2; affected 870499bc1d4dc04cba1f63dd5e7bc02b983e2458 before b8f73b163b646bc56d4dce9c697a578e333f4894; affected 870499bc1d4dc04cba1f63dd5e7bc02b983e2458 before d7f1cf5be33ef0175a4e8ed8687aeb98fb00a851 |
| Linux / Linux | affected 6.14; unaffected 0 before 6.14; unaffected 6.18.50 through 6.18.*; unaffected 7.2.4 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.