UBUNTU-CVE-2024-56678
In the Linux kernel, the following vulnerability has been resolved: powerpc/mm/fault: Fix kfence page fault reporting copy_from_kernel_nofault() can be called when doing read of /proc/kcore. /proc/kcore can have some unmapped kfence objects which when read via copy_from_kernel_nofault() can cause page faults. Since *_nofault() functions define their own fixup table for handling fault, use that instead of asking kfence to handle such faults. Hence we search the exception tables for the nip which generated the fault. If there is an entry then we let the fixup table handler handle the page fault by returning an error from within ___do_page_fault(). This can be easily triggered if someone tries to do dd from /proc/kcore. eg. dd if=/proc/kcore of=/dev/null bs=1M Some example false negatives: =============================== BUG: KFENCE: invalid read in copy_from_kernel_nofault+0x9c/0x1a0 Invalid read at 0xc0000000fdff0000: copy_from_kernel_nofault+0x9c/0x1a0 0xc00000000665f950 read_kcore_iter+0x57c/0xa04 proc_reg_read_iter+0xe4/0x16c vfs_read+0x320/0x3ec ksys_read+0x90/0x154 system_call_exception+0x120/0x310 system_call_vectored_common+0x15c/0x2ec BUG: KFENCE: use-after-free read in copy_from_kernel_nofault+0x9c/0x1a0 Use-after-free read at 0xc0000000fe050000 (in kfence-#2): copy_from_kernel_nofault+0x9c/0x1a0 0xc00000000665f950 read_kcore_iter+0x57c/0xa04 proc_reg_read_iter+0xe4/0x16c vfs_read+0x320/0x3ec ksys_read+0x90/0x154 system_call_exception+0x120/0x310 system_call_vectored_common+0x15c/0x2ec
02 / AFFECTED SOFTWARE
Affected packages
11 explicit affected versions
60 explicit affected versions
16 explicit affected versions
13 explicit affected versions
18 explicit affected versions
8 explicit affected versions
26 explicit affected versions
13 explicit affected versions
12 explicit affected versions
12 explicit affected versions
23 explicit affected versions
10 explicit affected versions
20 explicit affected versions
44 explicit affected versions
37 explicit affected versions
25 explicit affected versions
33 explicit affected versions
4 explicit affected versions
1 explicit affected versions
1 explicit affected versions
1 explicit affected versions
15 explicit affected versions
13 explicit affected versions
10 explicit affected versions
15 explicit affected versions
43 explicit affected versions
59 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
19 explicit affected versions
6 explicit affected versions
69 explicit affected versions
21 explicit affected versions
54 explicit affected versions
62 explicit affected versions
55 explicit affected versions
10 explicit affected versions
7 explicit affected versions
12 explicit affected versions
12 explicit affected versions
19 explicit affected versions
61 explicit affected versions
7 explicit affected versions
35 explicit affected versions
21 explicit affected versions
19 explicit affected versions
18 explicit affected versions
20 explicit affected versions
64 explicit affected versions
21 explicit affected versions
13 explicit affected versions
4 explicit affected versions
1 explicit affected versions
23 explicit affected versions
26 explicit affected versions
1 explicit affected versions
21 explicit affected versions
16 explicit affected versions
10 explicit affected versions
22 explicit affected versions
52 explicit affected versions
12 explicit affected versions
14 explicit affected versions
7 explicit affected versions
2 explicit affected versions
12 explicit affected versions
12 explicit affected versions
16 explicit affected versions
10 explicit affected versions
37 explicit affected versions
1 explicit affected versions
13 explicit affected versions
14 explicit affected versions
10 explicit affected versions
29 explicit affected versions
13 explicit affected versions
66 explicit affected versions
15 explicit affected versions
16 explicit affected versions
61 explicit affected versions
24 explicit affected versions
33 explicit affected versions
23 explicit affected versions
8 explicit affected versions
1 explicit affected versions
11 explicit affected versions
12 explicit affected versions
7 explicit affected versions
52 explicit affected versions
46 explicit affected versions
62 explicit affected versions
10 explicit affected versions
17 explicit affected versions
26 explicit affected versions
20 explicit affected versions
1 explicit affected versions
11 explicit affected versions
8 explicit affected versions
13 explicit affected versions
21 explicit affected versions
16 explicit affected versions
63 explicit affected versions
24 explicit affected versions
26 explicit affected versions
53 explicit affected versions
3 explicit affected versions
1 explicit affected versions
2 explicit affected versions
51 explicit affected versions
7 explicit affected versions
10 explicit affected versions
5 explicit affected versions
12 explicit affected versions
49 explicit affected versions
27 explicit affected versions
36 explicit affected versions
54 explicit affected versions
20 explicit affected versions
13 explicit affected versions
13 explicit affected versions
7 explicit affected versions
2 explicit affected versions
7 explicit affected versions
12 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
26 explicit affected versions
45 explicit affected versions
14 explicit affected versions
38 explicit affected versions
53 explicit affected versions
9 explicit affected versions
51 explicit affected versions
11 explicit affected versions
15 explicit affected versions
7 explicit affected versions
62 explicit affected versions
60 explicit affected versions
13 explicit affected versions
43 explicit affected versions
10 explicit affected versions
8 explicit affected versions
19 explicit affected versions
14 explicit affected versions
4 explicit affected versions
78 explicit affected versions
11 explicit affected versions
1 explicit affected versions
14 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: powerpc/mm/fault: Fix kfence page fault reporting copy_from_kernel_nofault() can be called when doing read of /proc/kcore. /proc/kcore can have some unmapped kfence objects which when read via copy_from_kernel_nofault() can cause page faults. Since *_nofault() functions define their own fixup table for handling fault, use that instead of asking kfence to handle such faults. Hence we search the exception tables for the nip which generated the fault. If there is an entry then we let the fixup table handler handle the page fault by returning an error from within ___do_page_fault(). This can be easily triggered if someone tries to do dd from /proc/kcore. eg. dd if=/proc/kcore of=/dev/null bs=1M Some example false negatives: =============================== BUG: KFENCE: invalid read in copy_from_kernel_nofault+0x9c/0x1a0 Invalid read at 0xc0000000fdff0000: copy_from_kernel_nofault+0x9c/0x1a0 0xc00000000665f950 read_kcore_iter+0x57c/0xa04 proc_reg_read_iter+0xe4/0x16c vfs_read+0x320/0x3ec ksys_read+0x90/0x154 system_call_exception+0x120/0x310 system_call_vectored_common+0x15c/0x2ec BUG: KFENCE: use-after-free read in copy_from_kernel_nofault+0x9c/0x1a0 Use-after-free read at 0xc0000000fe050000 (in kfence-#2): copy_from_kernel_nofault+0x9c/0x1a0 0xc00000000665f950 read_kcore_iter+0x57c/0xa04 proc_reg_read_iter+0xe4/0x16c vfs_read+0x320/0x3ec ksys_read+0x90/0x154 system_call_exception+0x120/0x310 system_call_vectored_common+0x15c/0x2ec
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/06dbbb4d5f7126b6307ab807cbf04ecfc459b933
- https://git.kernel.org/stable/c/06dbbb4d5f7126b6307ab807cbf04ecfc459b933
- https://git.kernel.org/stable/c/15f78d2c3d1452645bd8b9da909b0ca266f83c43
- https://git.kernel.org/stable/c/4d2655754e94741b159aa807b72ea85518a65fd5
- https://git.kernel.org/stable/c/7eaeb7a49b6d16640f9f3c9074c05175d74c710b
- https://git.kernel.org/stable/c/9ea8d8bf9b625e8ad3be6b0432aecdc549914121
- https://git.kernel.org/stable/c/e0a470b5733c1fe068d5c58b0bb91ad539604bc6
- https://ubuntu.com/security/CVE-2024-56678
- https://ubuntu.com/security/notices/USN-7276-1
- https://ubuntu.com/security/notices/USN-7277-1
- https://ubuntu.com/security/notices/USN-7310-1
- https://ubuntu.com/security/notices/USN-7387-1
- https://ubuntu.com/security/notices/USN-7387-2
- https://ubuntu.com/security/notices/USN-7387-3
- https://ubuntu.com/security/notices/USN-7388-1
- https://ubuntu.com/security/notices/USN-7389-1
- https://ubuntu.com/security/notices/USN-7390-1
- https://ubuntu.com/security/notices/USN-7407-1
- https://ubuntu.com/security/notices/USN-7421-1
- https://ubuntu.com/security/notices/USN-7449-1
- https://ubuntu.com/security/notices/USN-7449-2
- https://ubuntu.com/security/notices/USN-7450-1
- https://ubuntu.com/security/notices/USN-7451-1
- https://ubuntu.com/security/notices/USN-7452-1
- https://ubuntu.com/security/notices/USN-7453-1
- https://ubuntu.com/security/notices/USN-7458-1
- https://ubuntu.com/security/notices/USN-7459-1
- https://ubuntu.com/security/notices/USN-7459-2
- https://ubuntu.com/security/notices/USN-7468-1
- https://ubuntu.com/security/notices/USN-7523-1
- https://ubuntu.com/security/notices/USN-7524-1
- https://www.cve.org/CVERecord?id=CVE-2024-56678