In the Linux kernel, the following vulnerability has been resolved:
sched/core: Prevent rescheduling when interrupts are disabled
David reported a warning observed while loop testing kexec jump:
Interrupts enabled after irqrouter_resume+0x0/0x50 WARNING: CPU: 0 PID: 560 at drivers/base/syscore.c:103 syscore_resume+0x18a/0x220 kernel_kexec+0xf6/0x180 __do_sys_reboot+0x206/0x250 do_syscall_64+0x95/0x180
The corresponding interrupt flag trace:
hardirqs last enabled at (15573): [<ffffffffa8281b8e>] __up_console_sem+0x7e/0x90 hardirqs last disabled at (15580): [<ffffffffa8281b73>] __up_console_sem+0x63/0x90
That means __up_console_sem() was invoked with interrupts enabled. Further instrumentation revealed that in the interrupt disabled section of kexec jump one of the syscore_suspend() callbacks woke up a task, which set the NEED_RESCHED flag. A later callback in the resume path invoked cond_resched() which in turn led to the invocation of the scheduler:
__cond_resched+0x21/0x60 down_timeout+0x18/0x60 acpi_os_wait_semaphore+0x4c/0x80 acpi_ut_acquire_mutex+0x3d/0x100 acpi_ns_get_node+0x27/0x60 acpi_ns_evaluate+0x1cb/0x2d0 acpi_rs_set_srs_method_data+0x156/0x190 acpi_pci_link_set+0x11c/0x290 irqrouter_resume+0x54/0x60 syscore_resume+0x6a/0x200 kernel_kexec+0x145/0x1c0 __do_sys_reboot+0xeb/0x240 do_syscall_64+0x95/0x180
This is a long standing problem, which probably got more visible with the recent printk changes. Something does a task wakeup and the scheduler sets the NEED_RESCHED flag. cond_resched() sees it set and invokes schedule() from a completely bogus context. The scheduler enables interrupts after context switching, which causes the above warning at the end.
Quite some of the code paths in syscore_suspend()/resume() can result in triggering a wakeup with the exactly same consequences. They might not have done so yet, but as they share a lot of code with normal operations it's just a question of time.
The problem only affects the PREEMPT_NONE and PREEMPT_VOLUNTARY scheduling models. Full preemption is not affected as cond_resched() is disabled and the preemption check preemptible() takes the interrupt disabled flag into account.
Cure the problem by adding a corresponding check into cond_resched().
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade python-perfUpgrade kernel-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade kernelUpgrade bpftoolUpgrade kernel-develUpgrade bpftool-debuginfoUpgrade kernel-headersUpgrade kernel-tools-develUpgrade kernel-tools-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-livepatch-5.15.179-121.185Upgrade kernel-debuginfo-common-x86_64Upgrade perf-debuginfoUpgrade kernel-livepatch-5.10.235-227.919Upgrade kernel-debuginfoUpgrade perf | May 22, 2025 | Mar 27, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-modules-extra-commonUpgrade python3-perf-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-libbpf-staticUpgrade kernel-debuginfo-common-x86_64Upgrade bpftoolUpgrade kernelUpgrade kernel-develUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-headersUpgrade bpftool-debuginfoUpgrade kernel-libbpfUpgrade kernel-tools-develUpgrade python3-perfUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-6.1.130-139.222Upgrade kernel-toolsUpgrade kernel-modules-extraUpgrade perf-debuginfoUpgrade perf | Jun 11, 2025 | Mar 27, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Apr 14, 2025 | Mar 27, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Mar 27, 2025 |
| Ubuntu | — | Upgrade linux-image-raspiUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-azureUpgrade linux-image-5.4.0-1149-gcp-fipsUpgrade linux-image-5.4.0-1092-ibmUpgrade linux-image-6.8.0-1039-nvidia-lowlatencyUpgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-140-lowlatencyUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1037-nvidia-tegra-rtUpgrade linux-image-6.8.0-1040-gcpUpgrade linux-image-5.15.0-1037-nvidia-tegraUpgrade linux-image-6.11.0-1015-azureUpgrade linux-image-fipsUpgrade linux-image-5.15.0-1089-azureUpgrade linux-image-6.8.0-84-lowlatencyUpgrade linux-image-oem-22.04dUpgrade linux-image-azure-nvidia-6.8Upgrade linux-image-5.4.0-1120-fipsUpgrade linux-image-oem-24.04bUpgrade linux-image-5.15.0-140-generic-64kUpgrade linux-image-6.11.0-1015-gcp-64kUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-5.4.0-216-lowlatencyUpgrade linux-image-5.4.0-1051-iotUpgrade linux-image-6.8.0-1040-gcp-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-5.15.0-1089-azure-fipsUpgrade linux-image-lowlatency-6.8Upgrade linux-image-6.8.0-1039-awsUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1079-intel-iotgUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-64k-6.8Upgrade linux-image-6.8.0-1039-nvidia-64kUpgrade linux-image-bluefieldUpgrade linux-image-5.15.0-1081-gkeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-5.15.0-1078-nvidia-lowlatencyUpgrade linux-image-5.15.0-140-lowlatency-64kUpgrade linux-image-6.8.0-1039-nvidia-lowlatency-64kUpgrade linux-image-gcp-64kUpgrade linux-image-oemUpgrade linux-image-6.11.0-1022-oemUpgrade linux-image-azure-fdeUpgrade linux-image-aws-fipsUpgrade linux-image-gcp-6.8Upgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.15.0-1066-gkeopUpgrade linux-image-oracleUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-gcp-fipsUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1026-nvidia-tegra-igx-rtUpgrade linux-image-virtual-6.8Upgrade linux-image-5.4.0-216-genericUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-84-lowlatency-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-5.15.0-1083-gcp-fipsUpgrade linux-image-6.8.0-1023-gkeopUpgrade linux-image-oem-22.04Upgrade linux-image-5.4.0-1144-oracleUpgrade linux-image-awsUpgrade linux-image-6.8.0-1036-azure-fdeUpgrade linux-image-5.4.0-1064-xilinx-zynqmpUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-1026-nvidia-tegra-igxUpgrade linux-image-5.15.0-1078-raspiUpgrade linux-image-6.11.0-26-generic-64kUpgrade linux-image-azure-cvmUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.8.1-1034-realtimeUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-gke-64kUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.4.0-1146-aws-fipsUpgrade linux-image-6.11.0-1010-realtimeUpgrade linux-image-6.8.0-1025-azure-nvidiaUpgrade linux-image-6.8.0-1037-oracle-64kUpgrade linux-image-5.15.0-1077-intel-iot-realtimeUpgrade linux-image-6.11.0-1016-oracle-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-ibmUpgrade linux-image-lowlatencyUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-5.4.0-216-generic-lpaeUpgrade linux-image-6.8.0-1036-gke-64kUpgrade linux-image-raspi-nolpaeUpgrade linux-image-generic-lpaeUpgrade linux-image-raspi-6.8Upgrade linux-image-5.4.0-1149-gcpUpgrade linux-image-azure-nvidiaUpgrade linux-image-aws-6.8Upgrade linux-image-5.4.0-1133-kvmUpgrade linux-image-nvidiaUpgrade linux-image-5.15.0-142-genericUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-azure-nvidia-lts-24.04Upgrade linux-image-6.8.0-1039-raspiUpgrade linux-image-gkeopUpgrade linux-image-realtimeUpgrade linux-image-kvmUpgrade linux-image-gke-64k-6.8Upgrade linux-image-6.8.0-84-generic-64kUpgrade linux-image-6.11.0-1016-oracleUpgrade linux-image-6.11.0-26-genericUpgrade linux-image-5.15.0-140-fipsUpgrade linux-image-oem-osp1Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-5.15.0-1081-oracleUpgrade linux-image-6.8.0-1036-gkeUpgrade linux-image-5.15.0-1076-ibmUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-84-genericUpgrade linux-image-aws-lts-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1036-azureUpgrade linux-image-6.8.0-1039-nvidiaUpgrade linux-image-6.11.0-1014-lowlatency-64kUpgrade linux-image-5.4.0-1146-awsUpgrade linux-image-aws-lts-22.04Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-5.15.0-1084-aws-fipsUpgrade linux-image-5.4.0-1105-bluefieldUpgrade linux-image-6.8.0-85-genericUpgrade linux-image-intelUpgrade linux-image-6.8.0-1038-azure-fdeUpgrade linux-image-6.11.0-1014-lowlatencyUpgrade linux-image-oracle-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-oem-22.04bUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1039-aws-64kUpgrade linux-image-5.4.0-1151-azure-fipsUpgrade linux-image-virtualUpgrade linux-image-aws-64k-6.8Upgrade linux-image-5.4.0-1151-azureUpgrade linux-image-5.15.0-1083-gcpUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-64kUpgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-140-generic-lpaeUpgrade linux-image-gkeop-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.15.0-1084-awsUpgrade linux-image-gkeUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-genericUpgrade linux-image-aws-64kUpgrade linux-image-5.15.0-140-genericUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-raspi2Upgrade linux-image-6.11.0-1015-azure-fdeUpgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-1037-ibmUpgrade linux-image-oem-22.04cUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-5.15.0-142-generic-64kUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-generic-6.8Upgrade linux-image-oem-20.04dUpgrade linux-image-intel-iotgUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-1037-oracleUpgrade linux-image-6.11.0-1014-awsUpgrade linux-image-6.11.0-1013-raspiUpgrade linux-image-5.15.0-142-generic-lpaeUpgrade linux-image-azure-6.8Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-85-generic-64kUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-1084-realtimeUpgrade linux-image-6.11.0-1015-gcpUpgrade linux-image-6.8.0-2031-raspi-realtimeUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.15.0-1080-kvmUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-5.15.0-1050-xilinx-zynqmpUpgrade linux-image-6.8.0-1038-azureUpgrade linux-image-oem-20.04bUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-5.15.0-1078-nvidia | May 20, 2025 | Mar 27, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 13, 2025 | Mar 27, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub