CVE-2025-38008

mm/page_alloc: fix race condition in unaccepted memory handling

State
Published
Severity
Not scored
Published
Jun 18, 2025
Updated
May 11, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

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

mm/page_alloc: fix race condition in unaccepted memory handling

The page allocator tracks the number of zones that have unaccepted memory using static_branch_enc/dec() and uses that static branch in hot paths to determine if it needs to deal with unaccepted memory.

Borislav and Thomas pointed out that the tracking is racy: operations on static_branch are not serialized against adding/removing unaccepted pages to/from the zone.

Sanity checks inside static_branch machinery detects it:

WARNING: CPU: 0 PID: 10 at kernel/jump_label.c:276 __static_key_slow_dec_cpuslocked+0x8e/0xa0

The comment around the WARN() explains the problem:

/* * Warn about the '-1' case though; since that means a * decrement is concurrent with a first (0->1) increment. IOW * people are trying to disable something that wasn't yet fully * enabled. This suggests an ordering problem on the user side. */

The effect of this static_branch optimization is only visible on microbenchmark.

Instead of adding more complexity around it, remove it altogether.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • dcdfdd40fa82b6704d2841938e5c8ec3051eb0d6 to before 98fdd2f612e949c652693f6df00442c81037776dAffected
  • dcdfdd40fa82b6704d2841938e5c8ec3051eb0d6 to before 74953f93f47a45296cc2a3fd04e2a3202ff3fa53Affected
  • dcdfdd40fa82b6704d2841938e5c8ec3051eb0d6 to before 71dda1cb10702dc2859f00eb789b0502de2176a9Affected
  • dcdfdd40fa82b6704d2841938e5c8ec3051eb0d6 to before fefc075182275057ce607effaa3daa9e6e3bdc73Affected
LinuxLinux
  • 6.5Affected
  • before 6.5Not affected
  • 6.6.92 through 6.6.*Not affected
  • 6.12.30 through 6.12.*Not affected
  • 6.14.8 through 6.14.*Not affected
  • 6.15 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.