CVE-2024-58090: sched/core: Prevent rescheduling when interrupts are disabled

Published Mar 27, 2025
·
Updated

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 irqrouterresume+0x0/0x50 WARNING: CPU: 0 PID: 560 at drivers/base/syscore.c:103 syscoreresume+0x18a/0x220 kernelkexec+0xf6/0x180 dosysreboot+0x206/0x250 dosyscall64+0x95/0x180

The corresponding interrupt flag trace:

hardirqs last enabled at (15573): [<ffffffffa8281b8e>] upconsolesem+0x7e/0x90 hardirqs last disabled at (15580): [<ffffffffa8281b73>] upconsolesem+0x63/0x90

That means upconsolesem() was invoked with interrupts enabled. Further instrumentation revealed that in the interrupt disabled section of kexec jump one of the syscoresuspend() callbacks woke up a task, which set the NEEDRESCHED flag. A later callback in the resume path invoked condresched() which in turn led to the invocation of the scheduler:

condresched+0x21/0x60 downtimeout+0x18/0x60 acpioswaitsemaphore+0x4c/0x80 acpiutacquiremutex+0x3d/0x100 acpinsgetnode+0x27/0x60 acpinsevaluate+0x1cb/0x2d0 acpirssetsrsmethoddata+0x156/0x190 acpipcilinkset+0x11c/0x290 irqrouterresume+0x54/0x60 syscoreresume+0x6a/0x200 kernelkexec+0x145/0x1c0 dosysreboot+0xeb/0x240 dosyscall64+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 NEEDRESCHED flag. condresched() 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 syscoresuspend()/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 PREEMPTNONE and PREEMPTVOLUNTARY scheduling models. Full preemption is not affected as condresched() is disabled and the preemption check preemptible() takes the interrupt disabled flag into account.

Cure the problem by adding a corresponding check into condresched().

Affected Software

227 affected componentsFixes available
Linux Linux kernel
Linux Linux kernel<5.4.291
Linux Linux kernel>=5.5<5.10.235
Linux Linux kernel>=5.11<5.15.179
Linux Linux kernel>=5.16<6.1.130
Linux Linux kernel>=6.2<6.6.81
Linux Linux kernel>=6.7<6.12.18
Linux Linux kernel>=6.13<6.13.6
Linux Linux kernel=6.14-rc1
Linux Linux kernel=6.14-rc2
Linux Linux kernel=6.14-rc3
Linux Linux kernel=6.14-rc4
ubuntu/linux*
ubuntu/linux-aws*
ubuntu/linux-azure*
ubuntu/linux-lts-xenial*
ubuntu/linux*
ubuntu/linux-aws*
ubuntu/linux-aws-hwe*
ubuntu/linux-azure*
ubuntu/linux-gcp*
ubuntu/linux-hwe*
ubuntu/linux-hwe-edge*
ubuntu/linux-kvm*
ubuntu/linux-oracle*
ubuntu/linux-fips*
ubuntu/linux-fips*
ubuntu/linux*
ubuntu/linux-aws*
ubuntu/linux-aws-5.0*
ubuntu/linux-aws-5.3*
ubuntu/linux-aws-5.4<5.4.0-1146.156~18.04.1
5.4.0-1146.156~18.04.1
ubuntu/linux-azure*
ubuntu/linux-azure-4.15*
ubuntu/linux-azure-5.3*
ubuntu/linux-azure-5.4<5.4.0-1151.158~18.04.1
5.4.0-1151.158~18.04.1
ubuntu/linux-azure-edge*
ubuntu/linux-gcp*
ubuntu/linux-gcp-4.15*
ubuntu/linux-gcp-5.3*
ubuntu/linux-gcp-5.4<5.4.0-1149.158~18.04.1
5.4.0-1149.158~18.04.1
ubuntu/linux-gke-4.15*
ubuntu/linux-gke-5.4*
ubuntu/linux-gkeop-5.4*
ubuntu/linux-hwe*
ubuntu/linux-hwe-5.4<5.4.0-216.236~18.04.1
5.4.0-216.236~18.04.1
ubuntu/linux-hwe-edge*
ubuntu/linux-ibm-5.4<5.4.0-1092.97~18.04.1
5.4.0-1092.97~18.04.1
ubuntu/linux-kvm*
ubuntu/linux-oem*
ubuntu/linux-oracle*
ubuntu/linux-oracle-5.0*
ubuntu/linux-oracle-5.3*
ubuntu/linux-oracle-5.4<5.4.0-1144.154~18.04.1
5.4.0-1144.154~18.04.1
ubuntu/linux-raspi-5.4<5.4.0-1129.142~18.04.1
5.4.0-1129.142~18.04.1
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux<5.4.0-216.236
5.4.0-216.236
ubuntu/linux-aws<5.4.0-1146.156
5.4.0-1146.156
ubuntu/linux-aws-5.15<5.15.0-1084.91~20.04.1
5.15.0-1084.91~20.04.1
ubuntu/linux-azure<5.4.0-1151.158
5.4.0-1151.158
ubuntu/linux-azure-5.15<5.15.0-1089.98~20.04.1
5.15.0-1089.98~20.04.1
ubuntu/linux-bluefield<5.4.0-1105.112
5.4.0-1105.112
ubuntu/linux-gcp<5.4.0-1149.158
5.4.0-1149.158
ubuntu/linux-gcp-5.15<5.15.0-1083.92~20.04.1
5.15.0-1083.92~20.04.1
ubuntu/linux-ibm<5.4.0-1092.97
5.4.0-1092.97
ubuntu/linux-ibm-5.15<5.15.0-1076.79~20.04.1
5.15.0-1076.79~20.04.1
ubuntu/linux-intel-iotg-5.15<5.15.0-1079.85~20.04.1
5.15.0-1079.85~20.04.1
ubuntu/linux-kvm<5.4.0-1133.142
5.4.0-1133.142
ubuntu/linux-lowlatency-hwe-5.15<5.15.0-140.150~20.04.1
5.15.0-140.150~20.04.1
ubuntu/linux-oracle<5.4.0-1144.154
5.4.0-1144.154
ubuntu/linux-oracle-5.15<5.15.0-1081.87~20.04.1
5.15.0-1081.87~20.04.1
ubuntu/linux-raspi<5.4.0-1129.142
5.4.0-1129.142
ubuntu/linux-riscv-5.15<5.15.0-1079.83~20.04.1
5.15.0-1079.83~20.04.1
ubuntu/linux-xilinx-zynqmp<5.4.0-1064.68
5.4.0-1064.68
ubuntu/linux-aws-5.11*
ubuntu/linux-aws-5.13*
ubuntu/linux-aws-5.8*
ubuntu/linux-azure-5.11*
ubuntu/linux-azure-5.13*
ubuntu/linux-azure-5.8*
ubuntu/linux-azure-fde*
ubuntu/linux-gcp-5.11*
ubuntu/linux-gcp-5.13*
ubuntu/linux-gcp-5.8*
ubuntu/linux-gke*
ubuntu/linux-gke-5.15*
ubuntu/linux-gkeop*
ubuntu/linux-gkeop-5.15*
ubuntu/linux-hwe-5.11*
ubuntu/linux-hwe-5.13*
ubuntu/linux-hwe-5.15<5.15.0-142.152~20.04.1
5.15.0-142.152~20.04.1
ubuntu/linux-hwe-5.8*
ubuntu/linux-intel-5.13*
ubuntu/linux-iot<5.4.0-1051.54
5.4.0-1051.54
ubuntu/linux-nvidia-tegra-5.15<5.15.0-1039.39~20.04.1
5.15.0-1039.39~20.04.1
ubuntu/linux-oem-5.10*
ubuntu/linux-oem-5.13*
ubuntu/linux-oem-5.6*
ubuntu/linux-oracle-5.11*
ubuntu/linux-oracle-5.13*
ubuntu/linux-oracle-5.8*
ubuntu/linux-raspi2*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.11*
ubuntu/linux-riscv-5.8*
ubuntu/linux-aws-fips<5.4.0-1146.156+fips1
5.4.0-1146.156+fips1
ubuntu/linux-azure-fips<5.4.0-1151.158+fips1
5.4.0-1151.158+fips1
ubuntu/linux-fips<5.4.0-1120.130
5.4.0-1120.130
ubuntu/linux-gcp-fips<5.4.0-1149.158+fips1
5.4.0-1149.158+fips1
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux<5.15.0-140.150
5.15.0-140.150
ubuntu/linux-allwinner-5.19*
ubuntu/linux-aws<5.15.0-1084.91
5.15.0-1084.91
ubuntu/linux-aws-5.19*
ubuntu/linux-aws-6.2*
ubuntu/linux-aws-6.5*
ubuntu/linux-aws-6.8<6.8.0-1039.41~22.04.1
6.8.0-1039.41~22.04.1
ubuntu/linux-azure<5.15.0-1089.98
5.15.0-1089.98
ubuntu/linux-azure-5.19*
ubuntu/linux-azure-6.2*
ubuntu/linux-azure-6.5*
ubuntu/linux-azure-6.8<6.8.0-1036.42~22.04.1
6.8.0-1036.42~22.04.1
ubuntu/linux-azure-fde<5.15.0-1089.98.1
5.15.0-1089.98.1
ubuntu/linux-azure-fde-5.19*
ubuntu/linux-azure-fde-6.2*
ubuntu/linux-gcp<5.15.0-1083.92
5.15.0-1083.92
ubuntu/linux-gcp-5.19*
ubuntu/linux-gcp-6.2*
ubuntu/linux-gcp-6.5*
ubuntu/linux-gcp-6.8<6.8.0-1040.42~22.04.1
6.8.0-1040.42~22.04.1
ubuntu/linux-gke<5.15.0-1081.87
5.15.0-1081.87
ubuntu/linux-gkeop<5.15.0-1066.74
5.15.0-1066.74
ubuntu/linux-hwe-5.19*
ubuntu/linux-hwe-6.2*
ubuntu/linux-hwe-6.5*
ubuntu/linux-hwe-6.8<6.8.0-85.85~22.04.1
6.8.0-85.85~22.04.1
ubuntu/linux-ibm<5.15.0-1076.79
5.15.0-1076.79
ubuntu/linux-ibm-6.8<6.8.0-1037.37~22.04.1
6.8.0-1037.37~22.04.1
ubuntu/linux-intel-iot-realtime*
ubuntu/linux-intel-iotg<5.15.0-1079.85
5.15.0-1079.85
ubuntu/linux-kvm<5.15.0-1080.85
5.15.0-1080.85
ubuntu/linux-lowlatency<5.15.0-140.150
5.15.0-140.150
ubuntu/linux-lowlatency-hwe-5.19*
ubuntu/linux-lowlatency-hwe-6.2*
ubuntu/linux-lowlatency-hwe-6.5*
ubuntu/linux-lowlatency-hwe-6.8<6.8.0-84.84.1~22.04.1
6.8.0-84.84.1~22.04.1
ubuntu/linux-nvidia<5.15.0-1078.79
5.15.0-1078.79
ubuntu/linux-nvidia-6.2*
ubuntu/linux-nvidia-6.5*
ubuntu/linux-nvidia-6.8<6.8.0-1039.42~22.04.1
6.8.0-1039.42~22.04.1
ubuntu/linux-nvidia-tegra<5.15.0-1037.37
5.15.0-1037.37
ubuntu/linux-nvidia-tegra-igx<5.15.0-1026.26
5.15.0-1026.26
ubuntu/linux-oem-5.17*
ubuntu/linux-oem-6.0*
ubuntu/linux-oem-6.1*
ubuntu/linux-oem-6.5*
ubuntu/linux-oracle<5.15.0-1081.87
5.15.0-1081.87
ubuntu/linux-oracle-6.5*
ubuntu/linux-oracle-6.8<6.8.0-1037.38~22.04.1
6.8.0-1037.38~22.04.1
ubuntu/linux-raspi<5.15.0-1078.81
5.15.0-1078.81
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.19*
ubuntu/linux-riscv-6.5*
ubuntu/linux-riscv-6.8<6.8.0-84.84~22.04.1
6.8.0-84.84~22.04.1
ubuntu/linux-starfive-5.19*
ubuntu/linux-starfive-6.2*
ubuntu/linux-starfive-6.5*
ubuntu/linux-xilinx-zynqmp<5.15.0-1050.54
5.15.0-1050.54
ubuntu/linux-bluefield<5.15.0-1066.68
5.15.0-1066.68
ubuntu/linux-intel-iot-realtime<5.15.0-1077.79
5.15.0-1077.79
ubuntu/linux-realtime<5.15.0-1084.93
5.15.0-1084.93
ubuntu/linux-realtime-6.8<6.8.1-1034.35~22.04.1
6.8.1-1034.35~22.04.1
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux-aws-fips<5.15.0-1084.91+fips1
5.15.0-1084.91+fips1
ubuntu/linux-azure-fips<5.15.0-1089.98+fips1
5.15.0-1089.98+fips1
ubuntu/linux-fips<5.15.0-140.150+fips1
5.15.0-140.150+fips1
ubuntu/linux-gcp-fips<5.15.0-1083.92+fips1
5.15.0-1083.92+fips1
ubuntu/linux<6.8.0-84.84
6.8.0-84.84
ubuntu/linux-aws<6.8.0-1039.41
6.8.0-1039.41
ubuntu/linux-azure<6.8.0-1038.44
6.8.0-1038.44
ubuntu/linux-azure-6.11<6.11.0-1015.15~24.04.1
6.11.0-1015.15~24.04.1
ubuntu/linux-azure-nvidia<6.8.0-1025.27
6.8.0-1025.27
ubuntu/linux-gcp<6.8.0-1040.42
6.8.0-1040.42
ubuntu/linux-gcp-6.11<6.11.0-1015.15~24.04.1
6.11.0-1015.15~24.04.1
ubuntu/linux-gke<6.8.0-1036.40
6.8.0-1036.40
ubuntu/linux-gkeop<6.8.0-1023.25
6.8.0-1023.25
ubuntu/linux-hwe-6.11<6.11.0-26.26~24.04.1
6.11.0-26.26~24.04.1
ubuntu/linux-ibm<6.8.0-1037.37
6.8.0-1037.37
ubuntu/linux-intel*
ubuntu/linux-lowlatency<6.8.0-84.84.1
6.8.0-84.84.1
ubuntu/linux-lowlatency-hwe-6.11<6.11.0-1014.15~24.04.1
6.11.0-1014.15~24.04.1
ubuntu/linux-nvidia<6.8.0-1039.42
6.8.0-1039.42
ubuntu/linux-nvidia-6.11<6.11.0-1010.10
6.11.0-1010.10
ubuntu/linux-nvidia-lowlatency<6.8.0-1039.42.1
6.8.0-1039.42.1
ubuntu/linux-nvidia-tegra<6.8.0-1010.10
6.8.0-1010.10
ubuntu/linux-oem-6.11<6.11.0-1022.22
6.11.0-1022.22
ubuntu/linux-oem-6.8*
ubuntu/linux-oracle<6.8.0-1037.38
6.8.0-1037.38
ubuntu/linux-raspi<6.8.0-1039.43
6.8.0-1039.43
ubuntu/linux-raspi-realtime*
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-xilinx<6.8.0-1018.19
6.8.0-1018.19
ubuntu/linux-raspi-realtime<6.8.0-2030.31
6.8.0-2030.31
ubuntu/linux-realtime<6.8.1-1034.35
6.8.1-1034.35
ubuntu/linux-aws-fips<6.8.0-1039.41+fips1
6.8.0-1039.41+fips1
ubuntu/linux-azure-fips<6.8.0-1040.46+fips1
6.8.0-1040.46+fips1
ubuntu/linux-fips<6.8.0-84.84+fips1
6.8.0-84.84+fips1
ubuntu/linux-gcp-fips<6.8.0-1040.42+fips1
6.8.0-1040.42+fips1
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1
debian/linux<6.1.133-1
6.1.133-1
debian/linux<6.12.19-1
6.12.19-1
debian/linux<6.12.19-1
6.12.19-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    Add a corresponding check in cond_resched() to prevent rescheduling when interrupts are disabled.

Event History

Mar 27, 2025
CVE Published
via MITRE·02:57 PM
Data Sourced
via MITRE·02:57 PM
Description
Data Sourced
via OSV·03:15 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·03:15 PM
RemedyDescriptionSeverityAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

What is the severity of CVE-2024-58090?

CVE-2024-58090 has a severity rating that indicates it can cause system instability when interrupts are disabled.

2

How do I fix CVE-2024-58090?

To fix CVE-2024-58090, ensure you update to the latest patched version of the Linux Kernel.

3

What systems are affected by CVE-2024-58090?

CVE-2024-58090 affects various versions of the Linux Kernel.

4

What are the potential impacts of CVE-2024-58090?

The potential impacts of CVE-2024-58090 include system hangs and degraded performance due to improper rescheduling.

5

Who reported the issue in CVE-2024-58090?

The issue in CVE-2024-58090 was reported by an individual named David.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203