CVE-2024-41083

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-41083
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-41083.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-41083
Downstream
Published
2024-07-29T15:47:59Z
Modified
2025-10-17T08:51:08.998798Z
Summary
netfs: Fix netfs_page_mkwrite() to check folio->mapping is valid
Details

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

netfs: Fix netfspagemkwrite() to check folio->mapping is valid

Fix netfspagemkwrite() to check that folio->mapping is valid once it has taken the folio lock (as filemappagemkwrite() does). Without this, generic/247 occasionally oopses with something like the following:

BUG: kernel NULL pointer dereference, address: 0000000000000000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page

RIP: 0010:trace_event_raw_event_netfs_folio+0x61/0xc0
...
Call Trace:
 <TASK>
 ? __die_body+0x1a/0x60
 ? page_fault_oops+0x6e/0xa0
 ? exc_page_fault+0xc2/0xe0
 ? asm_exc_page_fault+0x22/0x30
 ? trace_event_raw_event_netfs_folio+0x61/0xc0
 trace_netfs_folio+0x39/0x40
 netfs_page_mkwrite+0x14c/0x1d0
 do_page_mkwrite+0x50/0x90
 do_pte_missing+0x184/0x200
 __handle_mm_fault+0x42d/0x500
 handle_mm_fault+0x121/0x1f0
 do_user_addr_fault+0x23e/0x3c0
 exc_page_fault+0xc2/0xe0
 asm_exc_page_fault+0x22/0x30

This is due to the invalidateinodepages2_range() issued at the end of the DIO write interfering with the mmap'd writes.

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
102a7e2c598c22bd2621fa97eb1c93c89d469a12
Fixed
3473eb87afd402e415a8ca885b284ea0420dde25
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
102a7e2c598c22bd2621fa97eb1c93c89d469a12
Fixed
a81c98bfa40c11f8ea79b5a9b3f5fda73bfbb4d2

Affected versions

v6.*

v6.10-rc1
v6.10-rc2
v6.10-rc3
v6.7
v6.7-rc8
v6.8
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4
v6.8-rc5
v6.8-rc6
v6.8-rc7
v6.9
v6.9-rc1
v6.9-rc2
v6.9-rc3
v6.9-rc4
v6.9-rc5
v6.9-rc6
v6.9-rc7
v6.9.1
v6.9.2
v6.9.3
v6.9.4
v6.9.5
v6.9.6
v6.9.7

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.8.0
Fixed
6.9.8