In the Linux kernel, the following vulnerability has been resolved:
arm64/entry: Mask DAIF in cpu_switch_to(), call_on_irq_stack()
`cpu_switch_to()` and `call_on_irq_stack()` manipulate SP to change to different stacks along with the Shadow Call Stack if it is enabled. Those two stack changes cannot be done atomically and both functions can be interrupted by SErrors or Debug Exceptions which, though unlikely, is very much broken : if interrupted, we can end up with mismatched stacks and Shadow Call Stack leading to clobbered stacks.
In `cpu_switch_to()`, it can happen when SP_EL0 points to the new task, but x18 stills points to the old task's SCS. When the interrupt handler tries to save the task's SCS pointer, it will save the old task SCS pointer (x18) into the new task struct (pointed to by SP_EL0), clobbering it.
In `call_on_irq_stack()`, it can happen when switching from the task stack to the IRQ stack and when switching back. In both cases, we can be interrupted when the SCS pointer points to the IRQ SCS, but SP points to the task stack. The nested interrupt handler pushes its return addresses on the IRQ SCS. It then detects that SP points to the task stack, calls `call_on_irq_stack()` and clobbers the task SCS pointer with the IRQ SCS pointer, which it will also use !
This leads to tasks returning to addresses on the wrong SCS, or even on the IRQ SCS, triggering kernel panics via CONFIG_VMAP_STACK or FPAC if enabled.
This is possible on a default config, but unlikely. However, when enabling CONFIG_ARM64_PSEUDO_NMI, DAIF is unmasked and instead the GIC is responsible for filtering what interrupts the CPU should receive based on priority. Given the goal of emulating NMIs, pseudo-NMIs can be received by the CPU even in `cpu_switch_to()` and `call_on_irq_stack()`, possibly *very* frequently depending on the system configuration and workload, leading to unpredictable kernel panics.
Completely mask DAIF in `cpu_switch_to()` and restore it when returning. Do the same in `call_on_irq_stack()`, but restore and mask around the branch. Mask DAIF even if CONFIG_SHADOW_CALL_STACK is not enabled for consistency of behaviour between all configurations.
Introduce and use an assembly macro for saving and masking DAIF, as the existing one saves but only masks IF.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-debuginfo-common-x86_64Upgrade perf-debuginfoUpgrade python-perf-debuginfoUpgrade kernelUpgrade kernel-livepatch-5.15.191-132.213Upgrade kernel-headersUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-tools-develUpgrade bpftoolUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade python-perfUpgrade kernel-livepatch-5.10.210-201.852Upgrade perfUpgrade kernel-devel | May 20, 2026 | May 20, 2026 |
| Amazon_linux_2023 | — | Upgrade bpftool6.12Upgrade kernel-modules-extra-commonUpgrade kernel6.12Upgrade kernel-libbpf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-libbpf-staticUpgrade perf6.12Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade kernel6.12-libbpf-develUpgrade kernel-headersUpgrade kernel6.12-libbpf-debuginfoUpgrade kernel6.12-headersUpgrade kernel6.12-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade bpftool6.12-debuginfoUpgrade bpftoolUpgrade kernel6.12-libbpf-staticUpgrade kernel6.12-develUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-6.1.150-174.273Upgrade kernel-libbpf-develUpgrade python3-perfUpgrade kernel6.12-toolsUpgrade kernel-debuginfoUpgrade kernel-develUpgrade kernel-debuginfo-common-aarch64Upgrade kernel6.12-tools-develUpgrade kernel-modules-extraUpgrade kernel-libbpfUpgrade python3-perf6.12Upgrade python3-perf-debuginfoUpgrade kernel-livepatch-6.12.46-66.121Upgrade kernel6.12-libbpfUpgrade perfUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-tools-develUpgrade kernel6.12-modules-extraUpgrade perf6.12-debuginfoUpgrade perf-debuginfoUpgrade python3-perf6.12-debuginfoUpgrade kernelUpgrade kernel6.12-tools-debuginfoUpgrade kernel6.12-debuginfo-common-aarch64 | Sep 30, 2025 | Aug 22, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Sep 25, 2025 | Sep 25, 2025 |
| Oracle_linux | — | Upgrade kernel-uek | Oct 16, 2025 | Aug 22, 2025 |
| Suse | — | Upgrade kselftests-kmp-azureUpgrade kernel-source-rtUpgrade reiserfs-kmp-64kbUpgrade cluster-md-kmp-64kbUpgrade dlm-kmp-rtUpgrade gfs2-kmp-64kbUpgrade gfs2-kmp-defaultUpgrade kernel-64kbUpgrade ocfs2-kmp-64kbUpgrade kernel-syms-rtUpgrade kernel-rt-livepatch-develUpgrade kselftests-kmp-rtUpgrade dtb-freescaleUpgrade kernel-64kb-extraUpgrade kernel-default-livepatchUpgrade kselftests-kmp-defaultUpgrade kernel-rt_debug-vdsoUpgrade ocfs2-kmp-azureUpgrade dlm-kmp-azureUpgrade kernel-default-baseUpgrade dtb-hisiliconUpgrade dtb-sprdUpgrade dtb-appleUpgrade kernel-azure-extraUpgrade reiserfs-kmp-rtUpgrade kernel-rt_debugUpgrade kernel-rt-optionalUpgrade reiserfs-kmp-defaultUpgrade kernel-azure-vdsoUpgrade kernel-debugUpgrade kernel-docsUpgrade dtb-amazonUpgrade dtb-amdUpgrade kernel-default-develUpgrade dlm-kmp-defaultUpgrade kernel-zfcpdumpUpgrade kernel-symsUpgrade dtb-renesasUpgrade kernel-64kb-optionalUpgrade kernel-64kb-develUpgrade dtb-socionextUpgrade kernel-debug-develUpgrade dtb-marvellUpgrade kernel-default-livepatch-develUpgrade kernel-rt_debug-develUpgrade kernel-defaultUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-vdsoUpgrade dtb-broadcomUpgrade cluster-md-kmp-defaultUpgrade cluster-md-kmp-rtUpgrade dtb-armUpgrade kernel-default-base-rebuildUpgrade kernel-source-azureUpgrade dtb-amlogicUpgrade kernel-debug-vdsoUpgrade dtb-apmUpgrade reiserfs-kmp-azureUpgrade dtb-qcomUpgrade kernel-rt-develUpgrade dtb-allwinnerUpgrade kernel-default-extraUpgrade dtb-rockchipUpgrade dtb-xilinxUpgrade dtb-caviumUpgrade cluster-md-kmp-azureUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmallUpgrade kernel-obs-buildUpgrade kernel-source-vanillaUpgrade kernel-rt-vdsoUpgrade kernel-rtUpgrade kernel-devel-rtUpgrade kernel-default-vdsoUpgrade kernel-default-optionalUpgrade gfs2-kmp-azureUpgrade dtb-alteraUpgrade ocfs2-kmp-defaultUpgrade kernel-azureUpgrade kselftests-kmp-64kbUpgrade kernel-syms-azureUpgrade kernel-rt-extraUpgrade kernel-macrosUpgrade dtb-mediatekUpgrade kernel-azure-optionalUpgrade kernel-sourceUpgrade dtb-nvidiaUpgrade kernel-azure-develUpgrade kernel-obs-qaUpgrade dtb-lgUpgrade ocfs2-kmp-rtUpgrade gfs2-kmp-rtUpgrade dtb-exynosUpgrade dlm-kmp-64kbUpgrade kernel-develUpgrade kernel-rt-livepatchUpgrade kernel-devel-azure | Dec 5, 2025 | Sep 18, 2025 |
| Ubuntu | — | Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-oracle-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-6.14.0-36-generic-64kUpgrade linux-image-oracle-5.15Upgrade linux-image-awsUpgrade linux-image-gke-6.8Upgrade linux-image-ibm-5.15Upgrade linux-image-6.14.0-1017-oracle-64kUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-gcp-fipsUpgrade linux-image-aws-6.14Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-6.14.0-1017-awsUpgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-aws-64k-5.15Upgrade linux-image-6.14.0-1020-gcp-64kUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-gcp-6.14Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.14.0-1017-azureUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-gke-64k-6.8Upgrade linux-image-realtime-5.15Upgrade linux-image-5.15.0-1097-aws-64kUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-oem-22.04dUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.14.0-36-genericUpgrade linux-image-raspi-5.15Upgrade linux-image-5.15.0-1092-intel-iotgUpgrade linux-image-virtual-6.8Upgrade linux-image-azure-cvmUpgrade linux-image-nvidia-5.15Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-163-genericUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gcp-64kUpgrade linux-image-5.15.0-163-lowlatencyUpgrade linux-image-nvidia-6.8Upgrade linux-image-raspi-6.8Upgrade linux-image-realtime-6.14Upgrade linux-image-oracle-6.14Upgrade linux-image-5.15.0-1097-awsUpgrade linux-image-aws-5.15Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-azure-fips-5.15Upgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.14.0-1016-realtimeUpgrade linux-image-azure-5.15Upgrade linux-image-gkeop-5.15Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-azure-6.14Upgrade linux-image-aws-fips-5.15Upgrade linux-image-azureUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-generic-64k-5.15Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-xilinx-6.8Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-gcp-64k-6.14Upgrade linux-image-5.15.0-163-generic-64kUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-6.14.0-1018-raspiUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-5.15.0-1091-ibmUpgrade linux-image-5.15.0-1038-nvidia-tegra-igxUpgrade linux-image-raspi-6.14Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-oem-20.04Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-oem-20.04cUpgrade linux-image-aws-fips-6.8Upgrade linux-image-virtual-5.15Upgrade linux-image-kvm-5.15Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-aws-6.8Upgrade linux-image-5.15.0-1101-azure-fipsUpgrade linux-image-aws-lts-24.04Upgrade linux-image-lowlatency-5.15Upgrade linux-image-generic-6.14Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-163-fipsUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-realtimeUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-lowlatency-6.8Upgrade linux-image-generic-5.15Upgrade linux-image-raspiUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-aws-64k-6.14Upgrade linux-image-gkeop-6.8Upgrade linux-image-generic-64k-6.14Upgrade linux-image-gkeopUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-nvidiaUpgrade linux-image-5.15.0-1080-gkeopUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-oracleUpgrade linux-image-oem-24.04aUpgrade linux-image-oem-22.04aUpgrade linux-image-ibmUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-lowlatencyUpgrade linux-image-kvmUpgrade linux-image-aws-64kUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-raspi-nolpaeUpgrade linux-image-gcpUpgrade linux-image-intel-iotgUpgrade linux-image-xilinxUpgrade linux-image-azure-lts-24.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.14.0-1017-aws-64kUpgrade linux-image-5.15.0-1102-azureUpgrade linux-image-5.15.0-1093-gkeUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-6.14Upgrade linux-image-oem-22.04Upgrade linux-image-fips-5.15Upgrade linux-image-5.15.0-1049-nvidia-tegraUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-gcp-6.8Upgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-163-lowlatency-64kUpgrade linux-image-5.15.0-163-generic-lpaeUpgrade linux-image-5.15.0-1049-nvidia-tegra-rtUpgrade linux-image-virtual-6.14Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-5.15.0-1092-nvidia-lowlatencyUpgrade linux-image-genericUpgrade linux-image-5.15.0-1097-gcp-fipsUpgrade linux-image-5.15.0-1089-intel-iot-realtimeUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-oem-22.04bUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-ibm-classicUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-5.15.0-1097-gcpUpgrade linux-image-5.15.0-1038-nvidia-tegra-igx-rtUpgrade linux-image-oem-24.04Upgrade linux-image-oracle-64k-6.14Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-raspi-realtimeUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-generic-6.8Upgrade linux-image-intelUpgrade linux-image-oem-20.04bUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-fips-6.8Upgrade linux-image-5.15.0-1101-azureUpgrade linux-image-5.15.0-1097-aws-fipsUpgrade linux-image-5.15.0-1091-raspiUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-5.15.0-1089-kvmUpgrade linux-image-5.15.0-1061-xilinx-zynqmpUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-5.15.0-1096-realtimeUpgrade linux-image-5.15.0-1094-oracleUpgrade linux-image-5.15.0-1092-nvidiaUpgrade linux-image-virtualUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-ibm-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-azure-fipsUpgrade linux-image-oem-20.04dUpgrade linux-image-gke-5.15Upgrade linux-image-gcp-5.15Upgrade linux-image-fipsUpgrade linux-image-azure-6.8Upgrade linux-image-6.14.0-1020-gcpUpgrade linux-image-6.14.0-1017-oracleUpgrade linux-image-6.14.0-1016-oem | Nov 25, 2025 | Nov 21, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 7, 2025 | Aug 22, 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