UBUNTU-CVE-2025-38346
In the Linux kernel, the following vulnerability has been resolved: ftrace: Fix UAF when lookup kallsym after ftrace disabled The following issue happens with a buggy module: BUG: unable to handle page fault for address: ffffffffc05d0218 PGD 1bd66f067 P4D 1bd66f067 PUD 1bd671067 PMD 101808067 PTE 0 Oops: Oops: 0000 [#1] SMP KASAN PTI Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS RIP: 0010:sized_strscpy+0x81/0x2f0 RSP: 0018:ffff88812d76fa08 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffffffc0601010 RCX: dffffc0000000000 RDX: 0000000000000038 RSI: dffffc0000000000 RDI: ffff88812608da2d RBP: 8080808080808080 R08: ffff88812608da2d R09: ffff88812608da68 R10: ffff88812608d82d R11: ffff88812608d810 R12: 0000000000000038 R13: ffff88812608da2d R14: ffffffffc05d0218 R15: fefefefefefefeff FS: 00007fef552de740(0000) GS:ffff8884251c7000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffc05d0218 CR3: 00000001146f0000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> ftrace_mod_get_kallsym+0x1ac/0x590 update_iter_mod+0x239/0x5b0 s_next+0x5b/0xa0 seq_read_iter+0x8c9/0x1070 seq_read+0x249/0x3b0 proc_reg_read+0x1b0/0x280 vfs_read+0x17f/0x920 ksys_read+0xf3/0x1c0 do_syscall_64+0x5f/0x2e0 entry_SYSCALL_64_after_hwframe+0x76/0x7e The above issue may happen as follows: (1) Add kprobe tracepoint; (2) insmod test.ko; (3) Module triggers ftrace disabled; (4) rmmod test.ko; (5) cat /proc/kallsyms; --> Will trigger UAF as test.ko already removed; ftrace_mod_get_kallsym() ... strscpy(module_name, mod_map->mod->name, MODULE_NAME_LEN); ... The problem is when a module triggers an issue with ftrace and sets ftrace_disable. The ftrace_disable is set when an anomaly is discovered and to prevent any more damage, ftrace stops all text modification. The issue that happened was that the ftrace_disable stops more than just the text modification. When a module is loaded, its init functions can also be traced. Because kallsyms deletes the init functions after a module has loaded, ftrace saves them when the module is loaded and function tracing is enabled. This allows the output of the function trace to show the init function names instead of just their raw memory addresses. When a module is removed, ftrace_release_mod() is called, and if ftrace_disable is set, it just returns without doing anything more. The problem here is that it leaves the mod_list still around and if kallsyms is called, it will call into this code and access the module memory that has already been freed as it will return: strscpy(module_name, mod_map->mod->name, MODULE_NAME_LEN); Where the "mod" no longer exists and triggers a UAF bug.
02 / AFFECTED SOFTWARE
Affected packages
71 explicit affected versions
72 explicit affected versions
61 explicit affected versions
85 explicit affected versions
76 explicit affected versions
27 explicit affected versions
72 explicit affected versions
4 explicit affected versions
63 explicit affected versions
88 explicit affected versions
11 explicit affected versions
53 explicit affected versions
116 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
19 explicit affected versions
6 explicit affected versions
81 explicit affected versions
24 explicit affected versions
66 explicit affected versions
66 explicit affected versions
91 explicit affected versions
10 explicit affected versions
28 explicit affected versions
26 explicit affected versions
73 explicit affected versions
7 explicit affected versions
70 explicit affected versions
32 explicit affected versions
13 explicit affected versions
35 explicit affected versions
35 explicit affected versions
33 explicit affected versions
31 explicit affected versions
18 explicit affected versions
29 explicit affected versions
118 explicit affected versions
64 explicit affected versions
37 explicit affected versions
120 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
43 explicit affected versions
124 explicit affected versions
1 explicit affected versions
1 explicit affected versions
21 explicit affected versions
9 explicit affected versions
16 explicit affected versions
10 explicit affected versions
39 explicit affected versions
8 explicit affected versions
7 explicit affected versions
12 explicit affected versions
7 explicit affected versions
111 explicit affected versions
7 explicit affected versions
12 explicit affected versions
14 explicit affected versions
10 explicit affected versions
1 explicit affected versions
7 explicit affected versions
9 explicit affected versions
104 explicit affected versions
12 explicit affected versions
105 explicit affected versions
12 explicit affected versions
32 explicit affected versions
9 explicit affected versions
23 explicit affected versions
25 explicit affected versions
10 explicit affected versions
37 explicit affected versions
10 explicit affected versions
13 explicit affected versions
31 explicit affected versions
2 explicit affected versions
10 explicit affected versions
7 explicit affected versions
48 explicit affected versions
1 explicit affected versions
26 explicit affected versions
3 explicit affected versions
13 explicit affected versions
20 explicit affected versions
1 explicit affected versions
29 explicit affected versions
111 explicit affected versions
13 explicit affected versions
11 explicit affected versions
8 explicit affected versions
78 explicit affected versions
32 explicit affected versions
32 explicit affected versions
1 explicit affected versions
100 explicit affected versions
73 explicit affected versions
36 explicit affected versions
33 explicit affected versions
23 explicit affected versions
42 explicit affected versions
10 explicit affected versions
10 explicit affected versions
11 explicit affected versions
12 explicit affected versions
7 explicit affected versions
12 explicit affected versions
3 explicit affected versions
138 explicit affected versions
3 explicit affected versions
58 explicit affected versions
132 explicit affected versions
74 explicit affected versions
154 explicit affected versions
10 explicit affected versions
26 explicit affected versions
31 explicit affected versions
132 explicit affected versions
1 explicit affected versions
50 explicit affected versions
26 explicit affected versions
38 explicit affected versions
7 explicit affected versions
93 explicit affected versions
13 explicit affected versions
37 explicit affected versions
139 explicit affected versions
78 explicit affected versions
26 explicit affected versions
16 explicit affected versions
75 explicit affected versions
41 explicit affected versions
116 explicit affected versions
18 explicit affected versions
33 explicit affected versions
1 explicit affected versions
7 explicit affected versions
2 explicit affected versions
51 explicit affected versions
92 explicit affected versions
45 explicit affected versions
12 explicit affected versions
61 explicit affected versions
61 explicit affected versions
27 explicit affected versions
98 explicit affected versions
47 explicit affected versions
121 explicit affected versions
1 explicit affected versions
1 explicit affected versions
167 explicit affected versions
34 explicit affected versions
8 explicit affected versions
38 explicit affected versions
5 explicit affected versions
3 explicit affected versions
8 explicit affected versions
1 explicit affected versions
10 explicit affected versions
7 explicit affected versions
12 explicit affected versions
37 explicit affected versions
13 explicit affected versions
110 explicit affected versions
13 explicit affected versions
5 explicit affected versions
7 explicit affected versions
140 explicit affected versions
8 explicit affected versions
94 explicit affected versions
10 explicit affected versions
21 explicit affected versions
108 explicit affected versions
80 explicit affected versions
56 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
37 explicit affected versions
42 explicit affected versions
14 explicit affected versions
38 explicit affected versions
9 explicit affected versions
11 explicit affected versions
30 explicit affected versions
13 explicit affected versions
74 explicit affected versions
8 explicit affected versions
7 explicit affected versions
121 explicit affected versions
1 explicit affected versions
1 explicit affected versions
1 explicit affected versions
72 explicit affected versions
63 explicit affected versions
62 explicit affected versions
13 explicit affected versions
43 explicit affected versions
77 explicit affected versions
119 explicit affected versions
10 explicit affected versions
8 explicit affected versions
36 explicit affected versions
14 explicit affected versions
4 explicit affected versions
78 explicit affected versions
11 explicit affected versions
1 explicit affected versions
69 explicit affected versions
123 explicit affected versions
10 explicit affected versions
30 explicit affected versions
62 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: ftrace: Fix UAF when lookup kallsym after ftrace disabled The following issue happens with a buggy module: BUG: unable to handle page fault for address: ffffffffc05d0218 PGD 1bd66f067 P4D 1bd66f067 PUD 1bd671067 PMD 101808067 PTE 0 Oops: Oops: 0000 [#1] SMP KASAN PTI Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS RIP: 0010:sized_strscpy+0x81/0x2f0 RSP: 0018:ffff88812d76fa08 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffffffc0601010 RCX: dffffc0000000000 RDX: 0000000000000038 RSI: dffffc0000000000 RDI: ffff88812608da2d RBP: 8080808080808080 R08: ffff88812608da2d R09: ffff88812608da68 R10: ffff88812608d82d R11: ffff88812608d810 R12: 0000000000000038 R13: ffff88812608da2d R14: ffffffffc05d0218 R15: fefefefefefefeff FS: 00007fef552de740(0000) GS:ffff8884251c7000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffc05d0218 CR3: 00000001146f0000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> ftrace_mod_get_kallsym+0x1ac/0x590 update_iter_mod+0x239/0x5b0 s_next+0x5b/0xa0 seq_read_iter+0x8c9/0x1070 seq_read+0x249/0x3b0 proc_reg_read+0x1b0/0x280 vfs_read+0x17f/0x920 ksys_read+0xf3/0x1c0 do_syscall_64+0x5f/0x2e0 entry_SYSCALL_64_after_hwframe+0x76/0x7e The above issue may happen as follows: (1) Add kprobe tracepoint; (2) insmod test.ko; (3) Module triggers ftrace disabled; (4) rmmod test.ko; (5) cat /proc/kallsyms; --> Will trigger UAF as test.ko already removed; ftrace_mod_get_kallsym() ... strscpy(module_name, mod_map->mod->name, MODULE_NAME_LEN); ... The problem is when a module triggers an issue with ftrace and sets ftrace_disable. The ftrace_disable is set when an anomaly is discovered and to prevent any more damage, ftrace stops all text modification. The issue that happened was that the ftrace_disable stops more than just the text modification. When a module is loaded, its init functions can also be traced. Because kallsyms deletes the init functions after a module has loaded, ftrace saves them when the module is loaded and function tracing is enabled. This allows the output of the function trace to show the init function names instead of just their raw memory addresses. When a module is removed, ftrace_release_mod() is called, and if ftrace_disable is set, it just returns without doing anything more. The problem here is that it leaves the mod_list still around and if kallsyms is called, it will call into this code and access the module memory that has already been freed as it will return: strscpy(module_name, mod_map->mod->name, MODULE_NAME_LEN); Where the "mod" no longer exists and triggers a UAF bug.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/f914b52c379c12288b7623bb814d0508dbe7481d
- https://git.kernel.org/stable/c/03a162933c4a03b9f1a84f7d8482903c7e1e11bb
- https://git.kernel.org/stable/c/6805582abb720681dd1c87ff677f155dcf4e86c9
- https://git.kernel.org/stable/c/83a692a9792aa86249d68a8ac0b9d55ecdd255fa
- https://git.kernel.org/stable/c/8690cd3258455bbae64f809e1d3ee0f043661c71
- https://git.kernel.org/stable/c/8e89c17dc8970c5f71a3a991f5724d4c8de42d8c
- https://git.kernel.org/stable/c/d064c68781c19f378af1ae741d9132d35d24b2bb
- https://git.kernel.org/stable/c/f78a786ad9a5443a29eef4dae60cde85b7375129
- https://git.kernel.org/stable/c/f914b52c379c12288b7623bb814d0508dbe7481d
- https://ubuntu.com/security/CVE-2025-38346
- https://ubuntu.com/security/notices/USN-7774-1
- https://ubuntu.com/security/notices/USN-7774-2
- https://ubuntu.com/security/notices/USN-7774-3
- https://ubuntu.com/security/notices/USN-7774-4
- https://ubuntu.com/security/notices/USN-7774-5
- https://ubuntu.com/security/notices/USN-7775-1
- https://ubuntu.com/security/notices/USN-7775-2
- https://ubuntu.com/security/notices/USN-7775-3
- https://ubuntu.com/security/notices/USN-7776-1
- https://ubuntu.com/security/notices/USN-7833-1
- https://ubuntu.com/security/notices/USN-7833-2
- https://ubuntu.com/security/notices/USN-7833-3
- https://ubuntu.com/security/notices/USN-7833-4
- https://ubuntu.com/security/notices/USN-7834-1
- https://ubuntu.com/security/notices/USN-7856-1
- https://ubuntu.com/security/notices/USN-8028-1
- https://ubuntu.com/security/notices/USN-8028-2
- https://ubuntu.com/security/notices/USN-8028-3
- https://ubuntu.com/security/notices/USN-8028-4
- https://ubuntu.com/security/notices/USN-8028-5
- https://ubuntu.com/security/notices/USN-8028-6
- https://ubuntu.com/security/notices/USN-8028-7
- https://ubuntu.com/security/notices/USN-8028-8
- https://ubuntu.com/security/notices/USN-8031-1
- https://ubuntu.com/security/notices/USN-8031-2
- https://ubuntu.com/security/notices/USN-8031-3
- https://ubuntu.com/security/notices/USN-8052-1
- https://ubuntu.com/security/notices/USN-8052-2
- https://ubuntu.com/security/notices/USN-8074-1
- https://ubuntu.com/security/notices/USN-8074-2
- https://ubuntu.com/security/notices/USN-8126-1
- https://www.cve.org/CVERecord?id=CVE-2025-38346