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 staticbranchenc/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/jumplabel.c:276 _statickeyslowdeccpuslocked+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.
[
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "__free_unaccepted"
},
"digest": {
"function_hash": "335485981618011142839090844181035576698",
"length": 535.0
},
"id": "CVE-2025-38008-2985a1a4",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71dda1cb10702dc2859f00eb789b0502de2176a9",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "cond_accept_memory"
},
"digest": {
"function_hash": "124739824017199644180637930739641859107",
"length": 507.0
},
"id": "CVE-2025-38008-2a4220fa",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71dda1cb10702dc2859f00eb789b0502de2176a9",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "has_unaccepted_memory"
},
"digest": {
"function_hash": "218421499594143415404538385941024367648",
"length": 94.0
},
"id": "CVE-2025-38008-4e5e0bee",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71dda1cb10702dc2859f00eb789b0502de2176a9",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "has_unaccepted_memory"
},
"digest": {
"function_hash": "218421499594143415404538385941024367648",
"length": 94.0
},
"id": "CVE-2025-38008-6c9f9962",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98fdd2f612e949c652693f6df00442c81037776d",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "__free_unaccepted"
},
"digest": {
"function_hash": "227181032593000946300848011269293657874",
"length": 514.0
},
"id": "CVE-2025-38008-8586b5af",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98fdd2f612e949c652693f6df00442c81037776d",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "cond_accept_memory"
},
"digest": {
"function_hash": "124739824017199644180637930739641859107",
"length": 507.0
},
"id": "CVE-2025-38008-8f57edc8",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98fdd2f612e949c652693f6df00442c81037776d",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"244550191866800777197753122250703645731",
"201975527843158849176711219842714933182",
"270976587395924801358729554771870701822",
"31656851588541285860175698469233972120",
"306264075152111328348938649395979355498",
"45166868246878931699657148003137690497",
"129205067527128637201362926215423855703",
"202423362270462613329213603272123806054",
"178123138882542431360100371837608772142",
"95501117809487534886229287671400530256",
"164080487253350881112535011893273536374",
"115192341631128940041099772709389141619",
"82875060409987406868666474732638296399",
"44560830321116539707557853668827227549",
"75672370290425425760330546297904244442",
"125453484452089981548503225719445310685",
"8952656570546022754731961952842553833",
"338238407833189421802792256112099588974",
"36444574400997984462459280331535849887",
"308124255486911067837696642202977278343",
"145988464654178577693669186582402839806",
"155247499173711413621326089135621584537",
"25545939958222108899798534018808403941",
"97291207245497121729586226142321019089",
"194288003423939616021690639039707169692",
"35127774073409445503084606663236283648",
"73603348453900928254140019939767583264",
"58598695115507987630113471851573772846",
"42251366920055877346068275787128135659",
"299230019738702636892043038681957328927",
"197471252393155817755704621606587032918",
"168130925556014852592942287917522771247",
"231532815897628036579202663721355019248",
"103781566239846670354672887872449400355",
"210306359344666666373732825963289374404",
"16642559558686512066428175124895822450",
"137506914554051747756461645448181995971",
"312784573813241873626140174669149333579",
"61766013836493806438321270810571662409",
"339048606167803892827982092134167054797",
"329356551969205651139340923009548018378",
"99132911762047826438278571972655671898",
"240733917777178363384282741158307896719",
"110394516148844309823241179835826488955",
"194405543562710424901485317925410120317",
"338956951515970028620488331909843907560",
"211911984068276997304531638917331272904",
"169611283004560985250764933708416285532",
"251499781702906081390050412361456201227",
"40134716531743553842765248018766630920",
"275442537819407505467061949850176763973",
"194389429570014175551435885380093890154",
"127356485514392802767959255769665328084",
"197724038937509979717035078590416137733",
"206516041329284709621921800747804776788"
]
},
"id": "CVE-2025-38008-9af8cd8e",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98fdd2f612e949c652693f6df00442c81037776d",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "__accept_page"
},
"digest": {
"function_hash": "230898022352086357991204010481363519684",
"length": 531.0
},
"id": "CVE-2025-38008-b0c545a3",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71dda1cb10702dc2859f00eb789b0502de2176a9",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"306264075152111328348938649395979355498",
"45166868246878931699657148003137690497",
"129205067527128637201362926215423855703",
"202423362270462613329213603272123806054",
"10161773405589797746549350092299223879",
"273688716683517092567959103969879157601",
"125364649262960916119295065512774989089",
"309681476299922178426418672593812820788",
"49047079716541923762850302373413342185",
"287085844682440832426708609460351043850",
"262726538126459622469185478780829502115",
"291430751485827943791314681802775382969",
"149715509471384746704969751157778668556",
"70804636625506319038967434827957434613",
"210140522060250182942214179707674412223",
"281275737719135110490758456697998030879",
"17764185870389313406948430144326637357",
"42251366920055877346068275787128135659",
"299230019738702636892043038681957328927",
"26747450249042724536159322777099802377",
"146689527985352259422050221052195734505",
"21798901809249103530491890448135209869",
"162431303623170038783034653915720312941",
"155247499173711413621326089135621584537",
"25545939958222108899798534018808403941",
"97291207245497121729586226142321019089",
"194288003423939616021690639039707169692",
"15483236536515365300968142781023954252",
"210306359344666666373732825963289374404",
"16642559558686512066428175124895822450",
"137506914554051747756461645448181995971",
"312784573813241873626140174669149333579",
"61766013836493806438321270810571662409",
"339048606167803892827982092134167054797",
"304822166003565494028318616635927621873",
"34609478799460893773184886394661365477",
"196364373060596853561194208803552055198",
"91794977056983407133327819719872279145",
"149839602510794336803801974142248785976",
"257274272972384270578394905965989455658",
"338956951515970028620488331909843907560",
"211911984068276997304531638917331272904",
"169611283004560985250764933708416285532"
]
},
"id": "CVE-2025-38008-dd67b5d9",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71dda1cb10702dc2859f00eb789b0502de2176a9",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "mm/page_alloc.c",
"function": "try_to_accept_memory_one"
},
"digest": {
"function_hash": "129770896838064952631060523882934100053",
"length": 657.0
},
"id": "CVE-2025-38008-f3cb2aa2",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98fdd2f612e949c652693f6df00442c81037776d",
"signature_version": "v1"
}
]