In the Linux kernel, the following vulnerability has been resolved:
scs: fix a wrong parameter in _scsmagic
scsmagic() needs a 'void *' variable, but a 'struct taskstruct *' is given. 'taskscs(tsk)' is the starting address of the task's shadow call stack, and 'scsmagic(taskscs(tsk))' is the end address of the task's shadow call stack. Here should be 'scsmagic(task_scs(tsk))'.
The user-visible effect of this bug is that when CONFIGDEBUGSTACKUSAGE is enabled, the shadow call stack usage checking function (scscheck_usage) would scan an incorrect memory range. This could lead
Inaccurate stack usage reporting: The function would calculate wrong usage statistics for the shadow call stack, potentially showing incorrect value in kmsg.
Potential kernel crash: If the value of _scsmagic(tsk)is greater than that of _scsmagic(taskscs(tsk)), the for loop may access unmapped memory, potentially causing a kernel panic. However, this scenario is unlikely because taskstruct is allocated via the slab allocator (which typically returns lower addresses), while the shadow call stack returned by task_scs(tsk) is allocated via vmalloc(which typically returns higher addresses).
However, since this is purely a debugging feature (CONFIGDEBUGSTACK_USAGE), normal production systems should be not unaffected. The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71102.json",
"cna_assigner": "Linux"
}