# CVE-2025-38517: linux: In the Linux kernel, the following vulnerability has been resolved:  lib/alloc_tag: do not acquire non-existent lock...

CVE-2025-38517 is fixed in 23 products on 1 platform, first by ALAS2023-2025-1145, released August 8, 2025. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2025-38517
- Priority: Routine
- CVSS: 5.5 (medium)
- EPSS: 0.0016
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Aug 8, 2025

## Description

In the Linux kernel, the following vulnerability has been resolved:  lib/alloc_tag: do not acquire non-existent lock in alloc_tag_top_users()  alloc_tag_top_users() attempts to lock alloc_tag_cttype->mod_lock even when the alloc_tag_cttype is not allocated because:    1) alloc tagging is disabled because mem profiling is disabled      (!alloc_tag_cttype)   2) alloc tagging is enabled, but not yet initialized (!alloc_tag_cttype)   3) alloc tagging is enabled, but failed initialization      (!alloc_tag_cttype or IS_ERR(alloc_tag_cttype))  In all cases, alloc_tag_cttype is not allocated, and therefore alloc_tag_top_users() should not attempt to acquire the semaphore.  This leads to a crash on memory allocation failure by attempting to acquire a non-existent semaphore:    Oops: general protection fault, probably for non-canonical address 0xdffffc000000001b: 0000 [#3] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x00000000000000d8-0x00000000000000df]   CPU: 2 UID: 0 PID: 1 Comm: systemd Tainted: G      D             6.16.0-rc2 #1 VOLUNTARY   Tainted: [D]=DIE   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014   RIP: 0010:down_read_trylock+0xaa/0x3b0   Code: d0 7c 08 84 d2 0f 85 a0 02 00 00 8b 0d df 31 dd 04 85 c9 75 29 48 b8 00 00 00 00 00 fc ff df 48 8d 6b 68 48 89 ea 48 c1 ea 03 <80> 3c 02 00 0f 85 88 02 00 00 48 3b 5b 68 0f 85 53 01 00 00 65 ff   RSP: 0000:ffff8881002ce9b8 EFLAGS: 00010016   RAX: dffffc0000000000 RBX: 0000000000000070 RCX: 0000000000000000   RDX: 000000000000001b RSI: 000000000000000a RDI: 0000000000000070   RBP: 00000000000000d8 R08: 0000000000000001 R09: ffffed107dde49d1   R10: ffff8883eef24e8b R11: ffff8881002cec20 R12: 1ffff11020059d37   R13: 00000000003fff7b R14: ffff8881002cec20 R15: dffffc0000000000   FS:  00007f963f21d940(0000) GS:ffff888458ca6000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 00007f963f5edf71 CR3: 000000010672c000 CR4: 0000000000350ef0   Call Trace:    <TASK>    codetag_trylock_module_list+0xd/0x20    alloc_tag_top_users+0x369/0x4b0    __show_mem+0x1cd/0x6e0    warn_alloc+0x2b1/0x390    __alloc_frozen_pages_noprof+0x12b9/0x21a0    alloc_pages_mpol+0x135/0x3e0    alloc_slab_page+0x82/0xe0    new_slab+0x212/0x240    ___slab_alloc+0x82a/0xe00    </TASK>  As David Wang points out, this issue became easier to trigger after commit 780138b12381 ("alloc_tag: check mem_profiling_support in alloc_tag_init").  Before the commit, the issue occurred only when it failed to allocate and initialize alloc_tag_cttype or if a memory allocation fails before alloc_tag_init() is called.  After the commit, it can be easily triggered when memory profiling is compiled but disabled at boot.  To properly determine whether alloc_tag_init() has been called and its data structures initialized, verify that alloc_tag_cttype is a valid pointer before acquiring the semaphore.  If the variable is NULL or an error value, it has not been properly initialized.  In such a case, just skip and do not attempt to acquire the semaphore.  [harry.yoo@oracle.com: v3]

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | bpftool6.12 amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | bpftool6.12-debuginfo amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel-livepatch-6.12.40-63.114 amzn 2023 | 1:1.0-0.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12 amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-debuginfo amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-debuginfo-common-aarch64 amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-debuginfo-common-x86_64 amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-devel amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-headers amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-libbpf amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-libbpf-debuginfo amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-libbpf-devel amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-libbpf-static amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-modules-extra amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-modules-extra-common amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-tools amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-tools-debuginfo amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | kernel6.12-tools-devel amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | linux Debian 13.5 (trixie) | 6.12.41-1 | [DEBIAN-CVE-2025-38517](https://patchblox.com/security/data/fix/linux/debian-cve-2025-38517.md) | Aug 16, 2025 |
| Linux | linux Debian 14 | 6.16.3-1 | [DEBIAN-CVE-2025-38517](https://patchblox.com/security/data/fix/linux/debian-cve-2025-38517.md) | Aug 16, 2025 |
| Linux | perf6.12 amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | perf6.12-debuginfo amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | python3-perf6.12 amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |
| Linux | python3-perf6.12-debuginfo amzn 2023 | 1:6.12.40-63.114.amzn2023 | [ALAS2023-2025-1145](https://patchblox.com/security/data/fix/linux/alas2023-2025-1145.md) | Aug 8, 2025 |

---

Data as of 2026-11-08T13:06:02Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
