CVE-2025-39953

In the Linux kernel, the following vulnerability has been resolved: cgroup: split cgroup_destroy_wq into 3 workqueues A hung task can occur during [1] LTP cgroup testing when repeatedly mounting/unmounting perf_event and net_prio controllers with systemd.unified_cgroup_hierarchy=1. The hang manifests in cgroup_lock_and_drain_offline() during root destruction. Related case: cgroup_fj_function_perf_event cgroup_fj_function.sh perf_event cgroup_fj_function_net_prio cgroup_fj_function.sh net_prio Call Trace: cgroup_lock_and_drain_offline+0x14c/0x1e8 cgroup_destroy_root+0x3c/0x2c0 css_free_rwork_fn+0x248/0x338 process_one_work+0x16c/0x3b8 worker_thread+0x22c/0x3b0 kthread+0xec/0x100 ret_from_fork+0x10/0x20 Root Cause: CPU0 CPU1 mount perf_event umount net_prio cgroup1_get_tree cgroup_kill_sb rebind_subsystems // root destruction enqueues // cgroup_destroy_wq // kill all perf_event css // one perf_event css A is dying // css A offline enqueues cgroup_destroy_wq // root destruction will be executed first css_free_rwork_fn cgroup_destroy_root cgroup_lock_and_drain_offline // some perf descendants are dying // cgroup_destroy_wq max_active = 1 // waiting for css A to die Problem scenario: 1. CPU0 mounts perf_event (rebind_subsystems) 2. CPU1 unmounts net_prio (cgroup_kill_sb), queuing root destruction work 3. A dying perf_event CSS gets queued for offline after root destruction 4. Root destruction waits for offline completion, but offline work is blocked behind root destruction in cgroup_destroy_wq (max_active=1) Solution: Split cgroup_destroy_wq into three dedicated workqueues: cgroup_offline_wq – Handles CSS offline operations cgroup_release_wq – Manages resource release cgroup_free_wq – Performs final memory deallocation This separation eliminates blocking in the CSS free path while waiting for offline operations to complete. [1] https://github.com/linux-test-project/ltp/blob/master/runtest/controllers
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc6:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: cgroup: dividir cgroup_destroy_wq en 3 colas de trabajo Una tarea colgada puede ocurrir durante las pruebas de cgroup de LTP [1] al montar/desmontar repetidamente los controladores perf_event y net_prio con systemd.unified_cgroup_hierarchy=1. La cuelga se manifiesta en cgroup_lock_and_drain_offline() durante la destrucción de la raíz. Caso relacionado: cgroup_fj_function_perf_event cgroup_fj_function.sh perf_event cgroup_fj_function_net_prio cgroup_fj_function.sh net_prio Traza de llamada: cgroup_lock_and_drain_offline+0x14c/0x1e8 cgroup_destroy_root+0x3c/0x2c0 css_free_rwork_fn+0x248/0x338 process_one_work+0x16c/0x3b8 worker_thread+0x22c/0x3b0 kthread+0xec/0x100 ret_from_fork+0x10/0x20 Causa raíz: CPU0 CPU1 montar perf_event desmontar net_prio cgroup1_get_tree cgroup_kill_sb rebind_subsystems // la destrucción de la raíz encola // cgroup_destroy_wq // matar todos los css de perf_event // un css de perf_event A está muriendo // css A offline encola cgroup_destroy_wq // la destrucción de la raíz se ejecutará primero css_free_rwork_fn cgroup_destroy_root cgroup_lock_and_drain_offline // algunos descendientes de perf están muriendo // cgroup_destroy_wq max_active = 1 // esperando que css A muera Escenario del problema: 1. CPU0 monta perf_event (rebind_subsystems) 2. CPU1 desmonta net_prio (cgroup_kill_sb), encolando el trabajo de destrucción de la raíz 3. Un CSS de perf_event moribundo se encola para offline después de la destrucción de la raíz 4. La destrucción de la raíz espera la finalización de offline, pero el trabajo de offline está bloqueado detrás de la destrucción de la raíz en cgroup_destroy_wq (max_active=1) Solución: Dividir cgroup_destroy_wq en tres colas de trabajo dedicadas: cgroup_offline_wq – Maneja las operaciones offline de CSS cgroup_release_wq – Gestiona la liberación de recursos cgroup_free_wq – Realiza la desasignación final de memoria Esta separación elimina el bloqueo en la ruta de liberación de CSS mientras se espera que las operaciones offline se completen. [1] https://github.com/linux-test-project/ltp/blob/master/runtest/controllers

15 Oct 2026, 02:18

Type Values Removed Values Added
References
  • () https://cert-portal.siemens.com/productcert/html/ssa-457936.html -

Information

Published : 2025-10-04 08:15

Updated : 2026-11-10 13:17


NVD link : CVE-2025-39953

Mitre link : CVE-2025-39953

CVE.ORG link : CVE-2025-39953


JSON object : View

Products Affected

linux

  • linux_kernel