Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-39776— mm/debug_vm_pgtable: clear page table entries at destroy_args()

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于mm/debug_vm_pagetable测试未正确清除手动分配的页表条目,可能导致后续进程遇到陈旧条目。

CVSS 7.0 · High EPSS 0.15% · P4

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application

Affected Version Matrix 14

VendorProduct Version RangeStatus
Linux Linux 3c9b84f044a9e54cf56d1b2c9b80a2d2ce56d70a< 7bf57a0709cd7c9088cea8de023d6f4fbf2518b0 affected
3c9b84f044a9e54cf56d1b2c9b80a2d2ce56d70a< 47d2a149611b8a94d24add9868c442a4af278658 affected
3c9b84f044a9e54cf56d1b2c9b80a2d2ce56d70a< 63962ff932ef359925b94be2a88df6b4fd4fed0a affected
3c9b84f044a9e54cf56d1b2c9b80a2d2ce56d70a< 61a9f2e5c49f05e3ea2c16674540a075a1b4be6f affected
3c9b84f044a9e54cf56d1b2c9b80a2d2ce56d70a< 561171db3b3eb759ba3f284dba7a76f4476ade03 affected
3c9b84f044a9e54cf56d1b2c9b80a2d2ce56d70a< dde30854bddfb5d69f30022b53c5955a41088b33 affected
5.15 affected
< 5.15 unaffected
… +6 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-39776

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
mm/debug_vm_pgtable: clear page table entries at destroy_args()
Source: CVE Program / CVE List V5
Vulnerability Description
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---
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于mm/debug_vm_pagetable测试未正确清除手动分配的页表条目,可能导致后续进程遇到陈旧条目。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 3c9b84f044a9e54cf56d1b2c9b80a2d2ce56d70a ~ 7bf57a0709cd7c9088cea8de023d6f4fbf2518b0 -
Linux Linux 5.15 -

II. Public POCs for CVE-2025-39776

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-39776

请登录查看更多情报信息。

Same Patch Batch · Linux · 2025-09-11 · 54 CVEs total

CVE-2025-39758 9.8 CRITICAL RDMA/siw: Fix the sendmsg byte count in siw_tcp_sendpages
CVE-2025-39761 8.8 HIGH wifi: ath12k: Decrement TID on RX peer frag setup error handling
CVE-2025-39750 8.8 HIGH wifi: ath12k: Correct tid cleanup when tid setup fails
CVE-2025-39790 8.4 HIGH bus: mhi: host: Detect events pointing to unexpected TREs
CVE-2025-39787 7.8 HIGH soc: qcom: mdt_loader: Ensure we don't read past the ELF header
CVE-2025-39791 7.8 HIGH dm: dm-crypt: Do not partially accept write BIOs with zoned targets
CVE-2025-39780 7.8 HIGH sched/ext: Fix invalid task state transitions on class switch
CVE-2025-39740 7.8 HIGH drm/xe/migrate: prevent potential UAF
CVE-2025-39786 7.8 HIGH iio: adc: ad7173: fix channels index for syscalib_mode
CVE-2025-39785 7.8 HIGH drm/hisilicon/hibmc: fix irq_request()'s irq name variable is local
CVE-2025-39779 7.8 HIGH btrfs: subpage: keep TOWRITE tag until folio is cleaned
CVE-2025-39770 7.5 HIGH net: gso: Forbid IPv6 TSO with extensions on devices with only IPV6_CSUM
CVE-2025-39738 7.3 HIGH btrfs: do not allow relocation of partially dropped subvolumes
CVE-2025-39789 7.3 HIGH crypto: x86/aegis - Add missing error checks
CVE-2025-39768 net/mlx5: HWS, fix complex rules rehash error flow
CVE-2025-39773 net: bridge: fix soft lockup in br_multicast_query_expired()
CVE-2025-39772 drm/hisilicon/hibmc: fix the hibmc loaded failed bug
CVE-2025-39766 net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit
CVE-2025-39769 bnxt_en: Fix lockdep warning during rmmod
CVE-2025-39771 regulator: pca9450: Use devm_register_sys_off_handler

Showing top 20 of 54 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2025-39776

No comments yet


Leave a comment