Linux: Use After Free
CVE-2025-38666 is a high-severity use after free vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions b35694ffabb2af308a1f725d70f60fd8a47d1f3e, 82d19a70ced28b17a38ebf1b6978c6c7db894979, 186942d19c0222617ef61f50e1dba91e269a5963 as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.18% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Update Linux to b35694ffabb2af308a1f725d70f60fd8a47d1f3e or 82d19a70ced28b17a38ebf1b6978c6c7db894979 or 186942d19c0222617ef61f50e1dba91e269a5963 or 2a6209e4649d45fd85d4193abc481911858ffc6f, whichever matches your release line, or a later version.
- Update Linux Kernel to 5.4.297 or 5.10.241 or 5.15.190 or 6.1.148, whichever matches your release line, or a later version.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, b35694ffabb2af308a1f725d70f60fd8a47d1f3e; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, 82d19a70ced28b17a38ebf1b6978c6c7db894979; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, 186942d19c0222617ef61f50e1dba91e269a5963; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, 2a6209e4649d45fd85d4193abc481911858ffc6f; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, e4f1564c5b699eb89b3040688fd6b4e57922f1f6; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, 5f02ea0f63dd38c41539ea290fcc1693c73aa8e5; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, f90b6bb203f3f38bf2b3d976113d51571df9a482; 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 up to, but not including, 6c4a92d07b0850342d3becf2e608f805e972467c; and 1 more ranges | b35694ffabb2af308a1f725d70f60fd8a47d1f3e, 82d19a70ced28b17a38ebf1b6978c6c7db894979, 186942d19c0222617ef61f50e1dba91e269a5963, 2a6209e4649d45fd85d4193abc481911858ffc6f, e4f1564c5b699eb89b3040688fd6b4e57922f1f6, 5f02ea0f63dd38c41539ea290fcc1693c73aa8e5 |
| Linux | Linux Kernel | 2.6.13 up to, but not including, 5.4.297; 5.5 up to, but not including, 5.10.241; 5.11 up to, but not including, 5.15.190; 5.16 up to, but not including, 6.1.148; 6.2 up to, but not including, 6.6.101; 6.7 up to, but not including, 6.12.41; 6.13 up to, but not including, 6.15.9; 2.6.12; and 1 more ranges | 5.4.297, 5.10.241, 5.15.190, 6.1.148, 6.6.101, 6.12.41 |
| Debian | Debian Linux | 11.0 | Not stated |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- LocalThe attacker needs local access or must trick a user into running something.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- LowA basic user account is enough.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- HighAll data handled by the component can be read.
- Integrity
- HighData or code can be modified at will.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.
Official description
In the Linux kernel, the following vulnerability has been resolved: net: appletalk: Fix use-after-free in AARP proxy probe The AARP proxy‐probe routine (aarp_proxy_probe_network) sends a probe, releases the aarp_lock, sleeps, then re-acquires the lock. During that window an expire timer thread (__aarp_expire_timer) can remove and kfree() the same entry, leading to a use-after-free. race condition: cpu 0 | cpu 1 atalk_sendmsg() | atif_proxy_probe_device() aarp_send_ddp() | aarp_proxy_probe_network() mod_timer() | lock(aarp_lock) // LOCK!! timeout around 200ms | alloc(aarp_entry) and then call | proxies[hash] = aarp_entry aarp_expire_timeout() | aarp_send_probe() | unlock(aarp_lock) // UNLOCK!! lock(aarp_lock) // LOCK!! | msleep(100); __aarp_expire_timer(&proxies[ct]) | free(aarp_entry) | unlock(aarp_lock) // UNLOCK!! | | lock(aarp_lock) // LOCK!! | UAF aarp_entry !! ================================================================== BUG: KASAN: slab-use-after-free in aarp_proxy_probe_network+0x560/0x630 net/appletalk/aarp.c:493 Read of size 4 at addr ffff8880123aa360 by task repro/13278 CPU: 3 UID: 0 PID: 13278 Comm: repro Not tainted 6.15.2 #3 PREEMPT(full) Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x116/0x1b0 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:408 [inline] print_report+0xc1/0x630 mm/kasan/report.c:521 kasan_report+0xca/0x100 mm/kasan/report.c:634 aarp_proxy_probe_network+0x560/0x630 net/appletalk/aarp.c:493 atif_proxy_probe_device net/appletalk/ddp.c:332 [inline] atif_ioctl+0xb58/0x16c0 net/appletalk/ddp.c:857 atalk_ioctl+0x198/0x2f0 net/appletalk/ddp.c:1818 sock_do_ioctl+0xdc/0x260 net/socket.c:1190 sock_ioctl+0x239/0x6a0 net/socket.c:1311 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:906 [inline] __se_sys_ioctl fs/ioctl.c:892 [inline] __x64_sys_ioctl+0x194/0x200 fs/ioctl.c:892 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcb/0x250 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated: aarp_alloc net/appletalk/aarp.c:382 [inline] aarp_proxy_probe_network+0xd8/0x630 net/appletalk/aarp.c:468 atif_proxy_probe_device net/appletalk/ddp.c:332 [inline] atif_ioctl+0xb58/0x16c0 net/appletalk/ddp.c:857 atalk_ioctl+0x198/0x2f0 net/appletalk/ddp.c:1818 Freed: kfree+0x148/0x4d0 mm/slub.c:4841 __aarp_expire net/appletalk/aarp.c:90 [inline] __aarp_expire_timer net/appletalk/aarp.c:261 [inline] aarp_expire_timeout+0x480/0x6e0 net/appletalk/aarp.c:317 The buggy address belongs to the object at ffff8880123aa300 which belongs to the cache kmalloc-192 of size 192 The buggy address is located 96 bytes inside of freed 192-byte region [ffff8880123aa300, ffff8880123aa3c0) Memory state around the buggy address: ffff8880123aa200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8880123aa280: 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc >ffff8880123aa300: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8880123aa380: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ffff8880123aa400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ==================================================================
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Use After Free
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory belongs to the code that operates on the new pointer.
How developers prevent this class of flaw
- Choose a language that provides automatic memory management.
- When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.
Timeline
- CVE record published.
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- git.kernel.org/stable/c/186942d19c0222617ef61f50e1dba91e269a5963
- git.kernel.org/stable/c/2a6209e4649d45fd85d4193abc481911858ffc6f
- git.kernel.org/stable/c/5f02ea0f63dd38c41539ea290fcc1693c73aa8e5
- git.kernel.org/stable/c/6c4a92d07b0850342d3becf2e608f805e972467c
- git.kernel.org/stable/c/82d19a70ced28b17a38ebf1b6978c6c7db894979
- git.kernel.org/stable/c/b35694ffabb2af308a1f725d70f60fd8a47d1f3e
- git.kernel.org/stable/c/e4f1564c5b699eb89b3040688fd6b4e57922f1f6
- git.kernel.org/stable/c/f90b6bb203f3f38bf2b3d976113d51571df9a482
Third-party and government advisories
- lists.debian.org/debian-lts-announce/2025/10/msg00007.htmlThird Party Advisory
- lists.debian.org/debian-lts-announce/2025/10/msg00008.htmlThird Party Advisory
Recent Use After Free vulnerabilities
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
Spotted an error? Tell us.