CVE-2026-23225
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
18/02/2026
Last modified:
02/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
sched/mmcid: Don&#39;t assume CID is CPU owned on mode switch<br />
<br />
Shinichiro reported a KASAN UAF, which is actually an out of bounds access<br />
in the MMCID management code.<br />
<br />
CPU0 CPU1<br />
T1 runs in userspace<br />
T0: fork(T4) -> Switch to per CPU CID mode<br />
fixup() set MM_CID_TRANSIT on T1/CPU1<br />
T4 exit()<br />
T3 exit()<br />
T2 exit()<br />
T1 exit() switch to per task mode<br />
---> Out of bounds access.<br />
<br />
As T1 has not scheduled after T0 set the TRANSIT bit, it exits with the<br />
TRANSIT bit set. sched_mm_cid_remove_user() clears the TRANSIT bit in<br />
the task and drops the CID, but it does not touch the per CPU storage.<br />
That&#39;s functionally correct because a CID is only owned by the CPU when<br />
the ONCPU bit is set, which is mutually exclusive with the TRANSIT flag.<br />
<br />
Now sched_mm_cid_exit() assumes that the CID is CPU owned because the<br />
prior mode was per CPU. It invokes mm_drop_cid_on_cpu() which clears the<br />
not set ONCPU bit and then invokes clear_bit() with an insanely large<br />
bit number because TRANSIT is set (bit 29).<br />
<br />
Prevent that by actually validating that the CID is CPU owned in<br />
mm_drop_cid_on_cpu().
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH



