CVE-2026-53352
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/07/2026
Última modificación:
01/07/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
signal: clear JOBCTL_PENDING_MASK for caller in zap_other_threads()<br />
<br />
When a multi-threaded process receives a stop signal (e.g., SIGSTOP),<br />
do_signal_stop() sets JOBCTL_STOP_PENDING and JOBCTL_STOP_CONSUME on all<br />
threads and sets signal->group_stop_count to the number of threads. If<br />
one of the threads concurrently calls execve(), de_thread() invokes<br />
zap_other_threads() to kill all other threads. zap_other_threads()<br />
aborts the pending group stop by resetting signal->group_stop_count to 0<br />
and clears the JOBCTL_PENDING_MASK for all other threads. However, it<br />
fails to clear the job control flags for the calling thread.<br />
<br />
When execve() completes, the calling thread returns to user mode and<br />
checks for pending signals. Seeing the stale JOBCTL_STOP_PENDING flag,<br />
it calls do_signal_stop(), which invokes task_participate_group_stop().<br />
Since JOBCTL_STOP_CONSUME is still set, it attempts to decrement the<br />
already-zero signal->group_stop_count, triggering a warning:<br />
<br />
sig->group_stop_count == 0<br />
WARNING: CPU: 1 PID: 6475 at kernel/signal.c:373<br />
task_participate_group_stop+0x215/0x2d0<br />
Call Trace:<br />
<br />
do_signal_stop+0x3be/0x5c0 kernel/signal.c:2619<br />
get_signal+0xa8c/0x1330 kernel/signal.c:2884<br />
arch_do_signal_or_restart+0xbc/0x840 arch/x86/kernel/signal.c:337<br />
exit_to_user_mode_loop+0x8c/0x4d0 kernel/entry/common.c:98<br />
do_syscall_64+0x33e/0xf80 arch/x86/entry/syscall_64.c:100<br />
entry_SYSCALL_64_after_hwframe+0x77/0x7f<br />
<br />
<br />
Fix this race condition by clearing the JOBCTL_PENDING_MASK for the<br />
calling thread in zap_other_threads(), ensuring it does not retain any<br />
stale job control state after the thread group is destroyed. This aligns<br />
with other functions that tear down a thread group and abort group<br />
stops, such as zap_process() and complete_signal(), which correctly<br />
clear these flags for all threads including the current one.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/2b32b2fb241435145ea199efac024540759d2495
- https://git.kernel.org/stable/c/391ebe74456a0f1d60b3ba4a8a64d9f44c1728fe
- https://git.kernel.org/stable/c/76aebd9ef20078719dfd6282d3b06c27e900a65a
- https://git.kernel.org/stable/c/8c046f36222c6ce1e0daef2c45c891c72602f8a1
- https://git.kernel.org/stable/c/90918794a4e2c3b440f8fcf3847765a8b1d81b25
- https://git.kernel.org/stable/c/dfcd0ba14769d94d76ac9d9814b85e7fcacd4e29
- https://git.kernel.org/stable/c/f4aae11abb449dc536269705d0419ec69480faa9
- https://git.kernel.org/stable/c/f8d720bc2e35d568c18be0644e92a468de428370



