Description
In the Linux kernel, the following vulnerability has been resolved:
m68k: Fix spinlock race in kernel thread creation
Context switching does take care to retain the correct lock owner across
the switch from 'prev' to 'next' tasks. This does rely on interrupts
remaining disabled for the entire duration of the switch.
This condition is guaranteed for normal process creation and context
switching between already running processes, because both 'prev' and
'next' already have interrupts disabled in their saved copies of the
status register.
The situation is different for newly created kernel threads. The status
register is set to PS_S in copy_thread(), which does leave the IPL at 0.
Upon restoring the 'next' thread's status register in switch_to() aka
resume(), interrupts then become enabled prematurely. resume() then
returns via ret_from_kernel_thread() and schedule_tail() where run queue
lock is released (see finish_task_switch() and finish_lock_switch()).
A timer interrupt calling scheduler_tick() before the lock is released
in finish_task_switch() will find the lock already taken, with the
current task as lock owner. This causes a spinlock recursion warning as
reported by Guenter Roeck.
As far as I can ascertain, this race has been opened in commit
533e6903bea0 ("m68k: split ret_from_fork(), simplify kernel_thread()")
but I haven't done a detailed study of kernel history so it may well
predate that commit.
Interrupts cannot be disabled in the saved status register copy for
kernel threads (init will complain about interrupts disabled when
finally starting user space). Disable interrupts temporarily when
switching the tasks' register sets in resume().
Note that a simple oriw 0x700,%sr after restoring sr is not enough here
- this leaves enough of a race for the 'spinlock recursion' warning to
still be observed.
Tested on ARAnyM and qemu (Quadra 800 emulation).
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 3.7 | 4.19.316 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.8.12-1 | — |
| Debian 13 | linux | 6.8.12-1 | — |
| Debian 12 | linux | 6.1.94-1 | — |
| Debian 11 | linux | 5.10.221-1 | DSA-5730-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | 5.15.0-1052.54 | — |
| Ubuntu 24.04 LTS | linux | 6.8.0-40.40 | USN-6949-1 |
| Ubuntu 24.04 LTS | linux-aws | 6.8.0-1013.14 | USN-6949-1 |
| Ubuntu 24.04 LTS | linux-azure | 6.8.0-1012.14 | USN-6952-2 |
| Ubuntu 24.04 LTS | linux-gcp | 6.8.0-1012.13 | USN-6949-1 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1008.11 | USN-6949-1 |
| Ubuntu 24.04 LTS | linux-ibm +2 | 6.8.0-1010.10 | USN-6955-1, USN-6952-1, USN-6949-1 |
| Ubuntu 24.04 LTS | linux-nvidia | 6.8.0-1011.11 | USN-6949-1 |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1011.11.1 | USN-6952-1 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1009.10 | USN-6949-2 |
| Ubuntu 24.04 LTS | linux-riscv +1 | 6.8.0-40.40.1 | USN-6949-2 |
| Ubuntu 22.04 LTS | linux +1 | 5.15.0-121.131 | USN-7007-3, USN-7007-1 |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1069.75 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-aws-6.8 | 6.8.0-1013.14~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1072.81 | USN-7009-1 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1012.14~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1072.81.1 | USN-7009-1 |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1068.76 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1012.13~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-gke | 5.15.0-1066.72 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1052.59 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 | 6.8.0-40.40~22.04.3 | — |
| Ubuntu 22.04 LTS | linux-ibm +1 | 5.15.0-1062.65 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 +1 | 6.8.0-1010.10~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1064.70 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1066.71 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1064.65 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-nvidia-6.8 | 6.8.0-1011.11~22.04.1 | USN-6949-1 |
| Ubuntu 22.04 LTS | linux-nvidia-tegra | 5.15.0-1028.28 | — |
| Ubuntu 22.04 LTS | linux-nvidia-tegra-igx | 5.15.0-1016.16 | — |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1067.73 | USN-7007-1 |
| Ubuntu 22.04 LTS | linux-riscv +31 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-riscv-6.8 +1 | 6.8.0-40.40.1~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-xilinx-zynqmp | 5.15.0-1035.39 | USN-7019-1 |
| Ubuntu 20.04 LTS | linux | 5.4.0-192.212 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-aws | 5.4.0-1130.140 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-aws-5.15 | 5.15.0-1069.75~20.04.1 | USN-7007-1 |
| Ubuntu 20.04 LTS | linux-azure | 5.4.0-1135.142 | USN-6951-2 |
| Ubuntu 20.04 LTS | linux-azure-5.15 | 5.15.0-1072.81~20.04.1 | USN-7009-1 |
| Ubuntu 20.04 LTS | linux-azure-fde-5.15 | 5.15.0-1072.81~20.04.1.1 | USN-7009-2 |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1090.97 | USN-6951-4 |
| Ubuntu 20.04 LTS | linux-gcp | 5.4.0-1134.143 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-gcp-5.15 | 5.15.0-1068.76~20.04.1 | USN-7007-1 |
| Ubuntu 20.04 LTS | linux-gke +26 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-gkeop | 5.4.0-1097.101 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-gkeop-5.15 | 5.15.0-1052.59~20.04.1 | USN-7007-1 |
| Ubuntu 20.04 LTS | linux-hwe-5.15 +1 | 5.15.0-121.131~20.04.1 | USN-7007-3, USN-7007-1 |
| Ubuntu 20.04 LTS | linux-ibm | 5.4.0-1077.82 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-ibm-5.15 | 5.15.0-1062.65~20.04.1 | USN-7007-2 |
| Ubuntu 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1064.70~20.04.1 | USN-7007-1 |
| Ubuntu 20.04 LTS | linux-iot | 5.4.0-1042.43 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-kvm | 5.4.0-1118.125 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-nvidia-tegra-5.15 | 5.15.0-1030.30~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-oracle | 5.4.0-1129.138 | USN-6953-1 |
| Ubuntu 20.04 LTS | linux-oracle-5.15 | 5.15.0-1067.73~20.04.1 | USN-7007-2 |
| Ubuntu 20.04 LTS | linux-raspi | 5.4.0-1114.126 | USN-6951-1 |
| Ubuntu 20.04 LTS | linux-riscv-5.15 | 5.15.0-1065.69~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-xilinx-zynqmp | 5.4.0-1049.53 | USN-6951-1 |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
Show 15 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2008.8 | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1006.6 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-intel-iot-realtime | 5.15.0-1063.65 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1070.78 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1006.6~22.04.1 | — |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-78.78+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-aws-fips | 5.15.0-1069.75+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-azure-fips | 5.15.0-1072.81+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips | 5.15.0-121.131+fips1 | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-gcp-fips | 5.15.0-1068.76+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-aws-fips | 5.4.0-1130.140+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-azure-fips | 5.4.0-1135.142+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips | 5.4.0-1104.114 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-gcp-fips | 5.4.0-1134.143+fips1 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | linux +5 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | linux-aws-5.4 | 5.4.0-1130.140~18.04.1 | USN-6951-1 |
| Ubuntu Pro 18.04 LTS | linux-azure-5.4 | 5.4.0-1135.142~18.04.1 | USN-6951-3 |
| Ubuntu Pro 18.04 LTS | linux-gcp-5.4 | 5.4.0-1134.143~18.04.1 | USN-6951-1 |
| Ubuntu Pro 18.04 LTS | linux-hwe-5.4 | 5.4.0-192.212~18.04.1 | USN-6951-1 |
| Ubuntu Pro 18.04 LTS | linux-ibm-5.4 | 5.4.0-1077.82~18.04.1 | USN-6951-1 |
| Ubuntu Pro 18.04 LTS | linux-oracle-5.4 | 5.4.0-1129.138~18.04.1 | USN-6953-1 |
| Ubuntu Pro 18.04 LTS | linux-raspi-5.4 | 5.4.0-1114.126~18.04.1 | USN-6979-1 |
| Ubuntu Pro 16.04 LTS | linux +7 | No fix yet | — |
| Ubuntu Pro 14.04 LTS | linux +3 | No fix yet | — |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 8 | kernel-uek-container +1 | 5.4.17-2136.334.6.el8 | ELSA-2024-12584 |
| Oracle Linux 7 | kernel-uek-container +1 | 5.4.17-2136.334.6.el7 | ELSA-2024-12585 |
| Oracle Linux 7 | perf +10 | 4.14.35-2047.540.4.1.el7uek | ELSA-2024-12611, ELSA-2024-12581 |
Advisories 23
- USN-7007-1 linux, linux-aws, linux-aws-5.15, linux-gcp, linux-gcp-5.15, linux-gke, linux-gkeop, linux-gkeop-5.15, linux-hwe-5.15, linux-ibm, linux-intel-iotg, linux-intel-iotg-5.15, linux-kvm, linux-nvidia, linux-oracle, linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-7009-1 linux-azure, linux-azure-5.15, linux-azure-fde vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-7007-3 linux-lowlatency, linux-lowlatency-hwe-5.15 vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-7019-1 linux-xilinx-zynqmp vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-6955-1 linux-oem-6.8 vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-7007-2 linux-ibm-5.15, linux-oracle-5.15 vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-6952-2 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-6952-1 linux-nvidia-lowlatency, linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-6949-2 linux-lowlatency, linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-6949-1 linux, linux-aws, linux-gcp, linux-gke, linux-ibm, linux-nvidia, linux-nvidia-6.8 vulnerabilities Ubuntu Security Notices (USN) · Oct 26, 2026
- USN-6951-1 linux, linux-aws, linux-aws-5.4, linux-gcp, linux-gcp-5.4, linux-gkeop, linux-hwe-5.4, linux-ibm, linux-ibm-5.4, linux-iot, linux-kvm, linux-raspi, linux-xilinx-zynqmp vulnerabilities Ubuntu Security Notices (USN) · Oct 23, 2026
- USN-6979-1 linux-raspi-5.4 vulnerabilities Ubuntu Security Notices (USN) · Oct 23, 2026
- USN-6951-3 linux-azure-5.4 vulnerabilities Ubuntu Security Notices (USN) · Oct 23, 2026
- USN-6953-1 linux-oracle, linux-oracle-5.4 vulnerabilities Ubuntu Security Notices (USN) · Oct 23, 2026
- USN-6951-4 linux-bluefield vulnerabilities Ubuntu Security Notices (USN) · Oct 23, 2026
- USN-6951-2 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Oct 23, 2026
- WID-SEC-2024-1418 Linux Kernel: Mehrere Schwachstellen ermöglichen nicht spezifizierten Angriff BSI CERT-Bund (WID) · Sep 8, 2026
- USN-7009-2 linux-azure-fde-5.15 vulnerabilities Ubuntu Security Notices (USN) · Aug 6, 2026
- DSA-5730-1 linux - security update Debian Security (DSA / DLA) · Mar 9, 2026
- ELSA-2024-12611 Important: Unbreakable Enterprise kernel security update (Oracle Linux 7) Oracle Linux Security Advisories (ELSA) · Sep 11, 2024
- ELSA-2024-12584 Important: Unbreakable Enterprise kernel-container security update (Oracle Linux 8) Oracle Linux Security Advisories (ELSA) · Aug 12, 2024
- ELSA-2024-12581 Important: Unbreakable Enterprise kernel security update (Oracle Linux 7) Oracle Linux Security Advisories (ELSA) · Aug 12, 2024
- ELSA-2024-12585 Important: Unbreakable Enterprise kernel-container security update (Oracle Linux 7) Oracle Linux Security Advisories (ELSA) · Aug 12, 2024
References
- https://git.kernel.org/stable/c/2a8d1d95302c7d52c6ac8fa5cb4a6948ae0d3a14
- https://git.kernel.org/stable/c/5213cc01d0464c011fdc09f318705603ed3a746b
- https://git.kernel.org/stable/c/4eeffecc8e3cce25bb559502c2fd94a948bcde82
- https://git.kernel.org/stable/c/77b2b67a0f8bce260c53907e5749d61466d90c87
- https://git.kernel.org/stable/c/0d9ae1253535f6e85a016e09c25ecbe6f7f59ef0
- https://git.kernel.org/stable/c/f3baf0f4f92af32943ebf27b960e0552c6c082fd
- https://git.kernel.org/stable/c/f1d4274a84c069be0f6098ab10c3443fc1f7134c
- https://git.kernel.org/stable/c/95f00caf767b5968c2c51083957b38be4748a78a
- https://git.kernel.org/stable/c/da89ce46f02470ef08f0f580755d14d547da59ed