CVE-2025-40040

MEDIUMNVD 5.55.5
EchelonGraph scoreMEDIUM confidence

Score 5.5 from GitHub Security Advisory published 2025-10-28. NVD baseline CVSS 5.5; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
Elevated
5.5EG
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 5.5Exploit: Elevated riskExposed: 0

A fix is available — apply it.

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

mm/ksm: fix flag-dropping behavior in ksm_madvise

syzkaller discovered the following crash: (kernel BUG)

[ 44.607039] ------------[ cut here ]------------ [ 44.607422] kernel BUG at mm/userfaultfd.c:2067! [ 44.608148] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [ 44.608814] CPU: 1 UID: 0 PID: 2475 Comm: reproducer Not tainted 6.16.0-rc6 #1 PREEMPT(none) [ 44.609635] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 44.610695] RIP: 0010:userfaultfd_release_all+0x3a8/0x460

[ 44.617726] Call Trace: [ 44.617926] [ 44.619284] userfaultfd_release+0xef/0x1b0 [ 44.620976] __fput+0x3f9/0xb60 [ 44.621240] fput_close_sync+0x110/0x210 [ 44.622222] __x64_sys_close+0x8f/0x120 [ 44.622530] do_syscall_64+0x5b/0x2f0 [ 44.622840] entry_SYSCALL_64_after_hwframe+0x76/0x7e [ 44.623244] RIP: 0033:0x7f365bb3f227

Kernel panics because it detects UFFD inconsistency during userfaultfd_release_all(). Specifically, a VMA which has a valid pointer to vma->vm_userfaultfd_ctx, but no UFFD flags in vma->vm_flags.

The inconsistency is caused in ksm_madvise(): when user calls madvise() with MADV_UNMEARGEABLE on a VMA that is registered for UFFD in MINOR mode, it accidentally clears all flags stored in the upper 32 bits of vma->vm_flags.

Assuming x86_64 kernel build, unsigned long is 64-bit and unsigned int and int are 32-bit wide. This setup causes the following mishap during the &= ~VM_MERGEABLE assignment.

VM_MERGEABLE is a 32-bit constant of type unsigned int, 0x8000'0000. After ~ is applied, it becomes 0x7fff'ffff unsigned int, which is then promoted to unsigned long before the & operation. This promotion fills upper 32 bits with leading 0s, as we're doing unsigned conversion (and even for a signed conversion, this wouldn't help as the leading bit is 0). & operation thus ends up AND-ing vm_flags with 0x0000'0000'7fff'ffff instead of intended 0xffff'ffff'7fff'ffff and hence accidentally clears the upper 32-bits of its value.

Fix it by changing VM_MERGEABLE constant to unsigned long, using the BIT() macro.

Note: other VM_* flags are not affected: This only happens to the VM_MERGEABLE flag, as the other VM_* flags are all constants of type int and after ~ operation, they end up with leading 1 and are thus converted to unsigned long with leading 1s.

Note 2: After commit 31defc3b01d9 ("userfaultfd: remove (VM_)BUG_ON()s"), this is no longer a kernel BUG, but a WARNING at the same place:

[ 45.595973] WARNING: CPU: 1 PID: 2474 at mm/userfaultfd.c:2067

but the root-cause (flag-drop) remains the same.

[[email protected]: rust bindgen wasn't able to handle BIT(), from Miguel]

CVSS v3
5.5
EG Score
5.5(medium)
EG Risk
45(Track)
EG Risk 45/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity55% × 45%
Exploitation40% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
29%
KEV
Not listed

Published

October 28, 2025

Last Modified

August 5, 2026

Advisory Details (8)

Auto-updated Aug 2, 2026
No patch confirmed yet.
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/f04aad36a07cc17b7a5d5b9a2d386ce6fae63e93
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/b69f19244c2b6475c8a6eb72f0fb0d53509e48cd
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/ac50c6e0a8f91a02b681af81abb2362fbb67cc18
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/92b82e232b8d8b116ac6e57aeae7a6033db92c60
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/850f1ea245bdc0ce6a3fd36bfb80d8cf9647cb71
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/788e5385d0ff69cdba1cabccb9dab8d9647b9239
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/76385629f45740b7888f8fcd83bde955b10f61fe
generic

mm/ksm: fix flag-dropping behavior in ksm_madvise - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/41cb9fd904fe0c39d52e82dd84dc3c96b7aa9693

Patch Availability(16)

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Affected Packages

(4 across 4 ecosystems)
Debian:11(1)
PackageVulnerable rangeFixed inDependents
linux-6.16.1.106-3~deb11u1 ... 6.1.153-1~deb11u1 (12 versions)6.1.158-1~deb11u1
Debian:12(1)
PackageVulnerable rangeFixed inDependents
linux6.1.106-1 ... 6.1.99-1 (44 versions)6.1.158-1
Debian:13(1)
PackageVulnerable rangeFixed inDependents
linux6.12.38-1 ... 6.12.57-1~bpo12+1 (6 versions)6.12.57-1
Debian:14(1)
PackageVulnerable rangeFixed inDependents
linux6.12.100-1 ... 6.17.5-1~exp1 (75 versions)6.17.6-1

All Vendor Advisories

(16)

Data Freshness Timeline

(refreshed 5× in last 7d / 24× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 150 total refreshes for this CVE.

  1. 2026-09-20 20:15 UTCEPSS rescore
  2. 2026-09-18 19:27 UTCEPSS rescore
  3. 2026-09-17 19:29 UTCEPSS rescore
  4. 2026-09-16 14:07 UTCEPSS rescore
  5. 2026-09-16 05:14 UTCEPSS rescore
  6. 2026-09-13 16:46 UTCEPSS rescore
  7. 2026-09-12 15:00 UTCEPSS rescore
  8. 2026-09-11 14:52 UTCEPSS rescore
  9. 2026-09-11 09:35 UTCEPSS rescore
  10. 2026-09-10 09:33 UTCEPSS rescore
  11. 2026-09-08 21:59 UTCEPSS rescore
  12. 2026-09-07 16:00 UTCEPSS rescore
  13. 2026-09-07 11:18 UTCOSV refresh
  14. 2026-09-06 13:46 UTCEPSS rescore
  15. 2026-09-04 05:05 UTCEPSS rescore
  16. 2026-09-02 14:11 UTCEPSS rescore
  17. 2026-09-01 13:53 UTCEPSS rescore
  18. 2026-09-01 04:38 UTCEPSS rescore
  19. 2026-08-30 19:16 UTCEPSS rescore
  20. 2026-08-30 01:21 UTCEPSS rescore
  21. 2026-08-28 21:40 UTCEPSS rescore
  22. 2026-08-27 14:24 UTCEPSS rescore
  23. 2026-08-26 14:45 UTCEPSS rescore
  24. 2026-08-25 13:48 UTCEPSS rescore
  25. 2026-08-23 00:18 UTCEPSS rescore
Show 75 more
  1. 2026-08-21 23:48 UTCEPSS rescore
  2. 2026-08-20 22:54 UTCEPSS rescore
  3. 2026-08-20 20:31 UTCOSV refresh
  4. 2026-08-19 17:03 UTCEPSS rescore
  5. 2026-08-19 17:03 UTCEPSS rescore
  6. 2026-08-18 13:47 UTCEPSS rescore
  7. 2026-08-17 13:46 UTCEPSS rescore
  8. 2026-08-16 14:55 UTCEPSS rescore
  9. 2026-08-16 02:13 UTCEPSS rescore
  10. 2026-08-15 01:29 UTCEPSS rescore
  11. 2026-08-13 21:59 UTCEPSS rescore
  12. 2026-08-12 13:50 UTCEPSS rescore
  13. 2026-08-09 13:46 UTCEPSS rescore
  14. 2026-08-08 16:36 UTCEPSS rescore
  15. 2026-08-07 16:26 UTCEPSS rescore
  16. 2026-08-06 13:46 UTCEPSS rescore
  17. 2026-08-05 12:53 UTCEG score recompute
  18. 2026-08-05 12:53 UTCVendor advisory
  19. 2026-08-05 12:53 UTCGHSA enrichment
  20. 2026-08-04 15:09 UTCEPSS rescore
  21. 2026-08-04 10:37 UTCEPSS rescore
  22. 2026-08-03 10:35 UTCEPSS rescore
  23. 2026-08-02 02:26 UTCEPSS rescore
  24. 2026-08-01 04:15 UTCEPSS rescore
  25. 2026-07-30 16:27 UTCEPSS rescore
  26. 2026-07-30 06:49 UTCEG score recompute
  27. 2026-07-30 06:49 UTCVendor advisory
  28. 2026-07-30 06:49 UTCGHSA enrichment
  29. 2026-07-30 01:29 UTCEPSS rescore
  30. 2026-07-28 15:35 UTCEPSS rescore
  31. 2026-07-26 14:54 UTCEPSS rescore
  32. 2026-07-25 14:17 UTCEPSS rescore
  33. 2026-07-25 14:17 UTCEPSS rescore
  34. 2026-07-24 14:17 UTCEPSS rescore
  35. 2026-07-23 16:41 UTCOSV refresh
  36. 2026-07-23 02:55 UTCEG score recompute
  37. 2026-07-22 14:07 UTCEPSS rescore
  38. 2026-07-22 14:07 UTCEPSS rescore
  39. 2026-07-21 15:24 UTCEPSS rescore
  40. 2026-07-20 17:07 UTCEPSS rescore
  41. 2026-07-19 14:30 UTCEPSS rescore
  42. 2026-07-19 14:30 UTCEPSS rescore
  43. 2026-07-19 02:28 UTCEPSS rescore
  44. 2026-07-19 02:28 UTCEPSS rescore
  45. 2026-07-18 10:04 UTCEPSS rescore
  46. 2026-07-18 10:04 UTCEPSS rescore
  47. 2026-07-16 17:02 UTCEPSS rescore
  48. 2026-07-15 16:57 UTCEPSS rescore
  49. 2026-07-15 16:57 UTCEPSS rescore
  50. 2026-07-15 01:59 UTCEPSS rescore
  51. 2026-07-15 01:59 UTCEPSS rescore
  52. 2026-07-13 22:29 UTCEPSS rescore
  53. 2026-07-13 22:29 UTCEPSS rescore
  54. 2026-07-13 06:12 UTCEPSS rescore
  55. 2026-07-12 05:46 UTCEPSS rescore
  56. 2026-07-11 08:27 UTCEPSS rescore
  57. 2026-07-11 08:27 UTCEPSS rescore
  58. 2026-07-09 19:09 UTCEPSS rescore
  59. 2026-07-09 19:09 UTCEPSS rescore
  60. 2026-07-07 13:45 UTCEPSS rescore
  61. 2026-07-06 16:27 UTCEPSS rescore
  62. 2026-07-06 16:27 UTCEPSS rescore
  63. 2026-07-06 11:11 UTCOSV refresh
  64. 2026-07-06 02:23 UTCEPSS rescore
  65. 2026-07-05 02:30 UTCEPSS rescore
  66. 2026-07-04 06:30 UTCEPSS rescore
  67. 2026-07-01 15:06 UTCEPSS rescore
  68. 2026-07-01 15:06 UTCEPSS rescore
  69. 2026-06-30 23:22 UTCEPSS rescore
  70. 2026-06-30 23:22 UTCEPSS rescore
  71. 2026-06-29 14:06 UTCEPSS rescore
  72. 2026-06-29 14:06 UTCEPSS rescore
  73. 2026-06-28 14:07 UTCEPSS rescore
  74. 2026-06-28 14:07 UTCEPSS rescore
  75. 2026-06-28 04:55 UTCEPSS rescore

Publicly available exploits

(1 reference)

Working exploit code is in the public domain (1 GitHub PoC). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.

  • GitHub PoCSpiralBL0CK/CVE-2023-1206-CVE-2025-40040-CVE-2024-49882
    First seen Dec 1, 2025

    3 linux kernel bugs chains to do secure comm app using side channel to establish key and establish covert channe;

    Open source ↗

Frequently asked(5)

What is CVE-2025-40040?
CVE-2025-40040 is a medium vulnerability published on October 28, 2025. In the Linux kernel, the following vulnerability has been resolved: mm/ksm: fix flag-dropping behavior in ksm_madvise syzkaller discovered the following crash: (kernel BUG) [ 44.607039] ------------[ cut here ]------------ [ 44.607422] kernel BUG at mm/userfaultfd.c:2067! [ 44.608148] Oops: invalid…
When was CVE-2025-40040 disclosed?
CVE-2025-40040 was first published in the National Vulnerability Database on October 28, 2025, with the most recent update on August 5, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-40040 actively exploited?
CVE-2025-40040 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0% probability of exploitation in the next 30 days, which ranks it in the top 71.3% of all scored CVEs.
What is the CVSS score of CVE-2025-40040?
CVE-2025-40040 has a CVSS v3 base score of 5.5 (NVD).
How do I remediate CVE-2025-40040?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2025-40040, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2025-40040

Explore →

Is Your Infrastructure Affected by CVE-2025-40040?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.