🛡️ AZL-74673 — kernel

⚪ Unknown ✅ No Known Exploit OSV
N/A
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

CVE-2025-39776 affecting package kernel for versions less than 5.15.200.1-1

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

mm/debug_vm_pgtable: clear page table entries at destroy_args()

The mm/debug_vm_pagetable test allocates manually page table entries for

the tests it runs, using also its manually allocated mm_struct. That in

itself is ok, but when it exits, at destroy_args() it fails to clear those

entries with the *_clear functions.

The problem is that leaves stale entries. If another process allocates an

mm_struct with a pgd at the same address, it may end up running into the

stale entry. This is happening in practice on a debug kernel with

CONFIG_DEBUG_VM_PGTABLE=y, for example this is the output with some extra

debugging I added (it prints a warning trace if pgtables_bytes goes

negative, in addition to the warning at check_mm() function):

[ 2.539353] debug_vm_pgtable: [get_random_vaddr ]: random_vaddr is 0x7ea247140000

[ 2.539366] kmem_cache info

[ 2.539374] kmem_cachep 0x000000002ce82385 - freelist 0x0000000000000000 - offset 0x508

[ 2.539447] debug_vm_pgtable: [init_args ]: args->mm is 0x000000002267cc9e

(...)

[ 2.552800] WARNING: CPU: 5 PID: 116 at include/linux/mm.h:2841 free_pud_range+0x8bc/0x8d0

[ 2.552816] Modules linked in:

[ 2.552843] CPU: 5 UID: 0 PID: 116 Comm: modprobe Not tainted 6.12.0-105.debug_vm2.el10.ppc64le+debug #1 VOLUNTARY

[ 2.552859] Hardware name: IBM,9009-41A POWER9 (architected) 0x4e0202 0xf000005 of:IBM,FW910.00 (VL910_062) hv:phyp pSeries

[ 2.552872] NIP: c0000000007eef3c LR: c0000000007eef30 CTR: c0000000003d8c90

[ 2.552885] REGS: c0000000622e73b0 TRAP: 0700 Not tainted (6.12.0-105.debug_vm2.el10.ppc64le+debug)

[ 2.552899] MSR: 800000000282b033 <SF,VEC,VSX,EE,FP,ME,IR,DR,RI,LE> CR: 24002822 XER: 0000000a

[ 2.552954] CFAR: c0000000008f03f0 IRQMASK: 0

[ 2.552954] GPR00: c0000000007eef30 c0000000622e7650 c000000002b1ac00 0000000000000001

[ 2.552954] GPR04: 0000000000000008 0000000000000000 c0000000007eef30 ffffffffffffffff

[ 2.552954] GPR08: 00000000ffff00f5 0000000000000001 0000000000000048 0000000000004000

[ 2.552954] GPR12: 00000003fa440000 c000000017ffa300 c0000000051d9f80 ffffffffffffffdb

[ 2.552954] GPR16: 0000000000000000 0000000000000008 000000000000000a 60000000000000e0

[ 2.552954] GPR20: 4080000000000000 c0000000113af038 00007fffcf130000 0000700000000000

[ 2.552954] GPR24: c000000062a6a000 0000000000000001 8000000062a68000 0000000000000001

[ 2.552954] GPR28: 000000000000000a c000000062ebc600 0000000000002000 c000000062ebc760

[ 2.553170] NIP [c0000000007eef3c] free_pud_range+0x8bc/0x8d0

[ 2.553185] LR [c0000000007eef30] free_pud_range+0x8b0/0x8d0

[ 2.553199] Call Trace:

[ 2.553207] [c0000000622e7650] [c0000000007eef30] free_pud_range+0x8b0/0x8d0 (unreliable)

[ 2.553229] [c0000000622e7750] [c0000000007f40b4] free_pgd_range+0x284/0x3b0

[ 2.553248] [c0000000622e7800] [c0000000007f4630] free_pgtables+0x450/0x570

[ 2.553274] [c0000000622e78e0] [c0000000008161c0] exit_mmap+0x250/0x650

[ 2.553292] [c0000000622e7a30] [c0000000001b95b8] __mmput+0x98/0x290

[ 2.558344] [c0000000622e7a80] [c0000000001d1018] exit_mm+0x118/0x1b0

[ 2.558361] [c0000000622e7ac0] [c0000000001d141c] do_exit+0x2ec/0x870

[ 2.558376] [c0000000622e7b60] [c0000000001d1ca8] do_group_exit+0x88/0x150

[ 2.558391] [c0000000622e7bb0] [c0000000001d1db8] sys_exit_group+0x48/0x50

[ 2.558407] [c0000000622e7be0] [c00000000003d810] system_call_exception+0x1e0/0x4c0

[ 2.558423] [c0000000622e7e50] [c00000000000d05c] system_call_vectored_common+0x15c/0x2ec

(...)

[ 2.558892] ---[ end trace 0000000000000000 ]---

[ 2.559022] BUG: Bad rss-counter state mm:000000002267cc9e type:MM_ANONPAGES val:1

[ 2.559037] BUG: non-zero pgtables_bytes on freeing mm: -6144

Here the modprobe process ended up with an allocated mm_struct from the

mm_struct slab that was used before by the debug_vm_pgtable test. That is

not a problem, since the mm_stru

---truncated---

Affected software

AZL-74673 is recorded against 1 package.

  • kernel (fixed in 5.15.200.1-1)

Timeline and source

Published on 11 September 2025 and last revised on 21 April 2026. No public exploit is currently recorded for this entry. Record sourced from OSV.

References

nvd.nist.gov (Web)

Details

Severity Unknown
CVSS Score N/A
CVSS Vector N/A
CWE N/A
Public Exploit ✅ No
Source OSV
Published 2025-09-11
Updated 2026-08-12
Modified 2026-04-21
Fix URL N/A

Affected Packages

Software From version Fixed in
kernel 5.15.200.1-1

Similar Threats

Free Vulnerability Check

Is your site affected by AZL-74673?

BotEraser helps you identify potentially vulnerable plugins and themes by checking your installation against AZL-74673 and other known CVE records.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.