CVE-2024-53195: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Get rid of userspace_irqchip_in_use Improper use of userspace_irqchip_in_use led to syzbot hitting the following WARN_ON() in kvm_timer_update_irq(): WARNING: CPU: 0 PID: 3281 at arch/arm64/kvm/arch_timer.c:459 kvm_timer_update_irq+0x21c/0x394 Call trace: kvm_timer_update_irq+0x21c/0x394 arch/arm64/kvm/arch_timer.c:459 kvm_timer_vcpu_reset+0x158/0x684 arch/arm64/kvm/arch_timer.c:968 kvm_reset_vcpu+0x3b4/0x560 arch/arm64/kvm/reset.c:264 kvm_vcpu_set_target arch/arm64/kvm/arm.c:1553 [inline] kvm_arch_vcpu_ioctl_vcpu_init arch/arm64/kvm/arm.c:1573 [inline] kvm_arch_vcpu_ioctl+0x112c/0x1b3c arch/arm64/kvm/arm.c:1695 kvm_vcpu_ioctl+0x4ec/0xf74 virt/kvm/kvm_main.c:4658 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:907 [inline] __se_sys_ioctl fs/ioctl.c:893 [inline] __arm64_sys_ioctl+0x108/0x184 fs/ioctl.c:893 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x78/0x1b8 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xe8/0x1b0 arch/arm64/kernel/syscall.c:132 do_el0_svc+0x40/0x50 arch/arm64/kernel/syscall.c:151 el0_svc+0x54/0x14c arch/arm64/kernel/entry-common.c:712 el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:730 el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598 The following sequence led to the scenario: - Userspace creates a VM and a vCPU. - The vCPU is initialized with KVM_ARM_VCPU_PMU_V3 during KVM_ARM_VCPU_INIT. - Without any other setup, such as vGIC or vPMU, userspace issues KVM_RUN on the vCPU. Since the vPMU is requested, but not setup, kvm_arm_pmu_v3_enable() fails in kvm_arch_vcpu_run_pid_change(). As a result, KVM_RUN returns after enabling the timer, but before incrementing 'userspace_irqchip_in_use': kvm_arch_vcpu_run_pid_change() ret = kvm_arm_pmu_v3_enable() if (!vcpu->arch.pmu.created) return -EINVAL; if (ret) return ret; [...] if (!irqchip_in_kernel(kvm)) static_branch_inc(&userspace_irqchip_in_use); - Userspace ignores the error and issues KVM_ARM_VCPU_INIT again. Since the timer is already enabled, control moves through the following flow, ultimately hitting the WARN_ON(): kvm_timer_vcpu_reset() if (timer->enabled) kvm_timer_update_irq() if (!userspace_irqchip()) ret = kvm_vgic_inject_irq() ret = vgic_lazy_init() if (unlikely(!vgic_initialized(kvm))) if (kvm->arch.vgic.vgic_model != KVM_DEV_TYPE_ARM_VGIC_V2) return -EBUSY; WARN_ON(ret); Theoretically, since userspace_irqchip_in_use's functionality can be simply replaced by '!irqchip_in_kernel()', get rid of the static key to avoid the mismanagement, which also helps with the syzbot issue.
AI Analysis
Technical Summary
CVE-2024-53195 is a vulnerability identified in the Linux kernel's KVM (Kernel-based Virtual Machine) implementation for the ARM64 architecture. The issue arises from improper management of the userspace_irqchip_in_use static key, which is used to track whether a userspace IRQ chip is in use. The vulnerability manifests when userspace creates a virtual machine (VM) and a virtual CPU (vCPU), initializes the vCPU with the KVM_ARM_VCPU_PMU_V3 flag during KVM_ARM_VCPU_INIT, but does not fully set up required components such as the virtual Generic Interrupt Controller (vGIC) or virtual Performance Monitoring Unit (vPMU). When userspace issues the KVM_RUN command on the vCPU, the kernel attempts to enable the vPMU but fails because it is not properly initialized, causing kvm_arm_pmu_v3_enable() to return an error. Despite this failure, the timer is enabled but the userspace_irqchip_in_use counter is not incremented as expected. If userspace ignores this error and issues KVM_ARM_VCPU_INIT again, the kernel's timer reset function (kvm_timer_vcpu_reset) calls kvm_timer_update_irq, which checks the userspace_irqchip_in_use state. Due to the mismanagement of this static key, the kernel triggers a WARN_ON() condition, indicating an unexpected state that could lead to instability or denial of service. The root cause is the improper use and management of the userspace_irqchip_in_use static key, which the patch replaces with a more reliable check using !irqchip_in_kernel() to avoid this mismanagement and the associated kernel warnings. This vulnerability is specific to ARM64 KVM implementations and affects Linux kernel versions identified by the commit hash 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2. There are no known exploits in the wild, and no CVSS score has been assigned yet. The issue was discovered through syzbot fuzz testing, which triggered the WARN_ON() condition during kernel execution.
Potential Impact
For European organizations, the impact of CVE-2024-53195 primarily concerns environments running ARM64-based Linux systems with KVM virtualization enabled. This includes cloud providers, telecom operators, and enterprises deploying ARM64 servers or edge computing devices. The vulnerability can cause kernel warnings that may lead to system instability or crashes, potentially resulting in denial of service (DoS) conditions on virtualized workloads. This can disrupt critical services, especially in sectors relying on ARM64 infrastructure such as telecommunications (5G infrastructure), IoT deployments, and cloud-native applications. Although there is no evidence of privilege escalation or arbitrary code execution, the instability caused by this vulnerability could be exploited by attackers to degrade service availability or cause unexpected reboots. European organizations with ARM64-based virtualization platforms should be aware that ignoring error returns from KVM ioctl calls can trigger this vulnerability. The lack of known exploits reduces immediate risk, but the potential for DoS in critical infrastructure warrants prompt attention. Furthermore, the complexity of the issue means that debugging and recovery may require specialized kernel knowledge, increasing operational overhead for affected organizations.
Mitigation Recommendations
To mitigate CVE-2024-53195, European organizations should: 1) Apply the latest Linux kernel patches that remove the userspace_irqchip_in_use static key and replace it with the more reliable !irqchip_in_kernel() check, as indicated by the upstream fix. 2) Ensure that userspace virtualization management tools properly handle errors returned by KVM ioctl calls, especially during vCPU initialization and KVM_RUN commands, to avoid ignoring failures that lead to inconsistent kernel states. 3) Audit and update virtualization orchestration scripts and management software to verify complete setup of vGIC and vPMU components before running vCPUs with KVM_ARM_VCPU_PMU_V3 enabled. 4) Monitor kernel logs for WARN_ON() messages related to kvm_timer_update_irq and kvm_timer_vcpu_reset to detect any attempts to trigger this vulnerability. 5) For critical production environments, consider implementing runtime kernel integrity monitoring and automated rollback mechanisms to quickly recover from potential DoS conditions caused by this vulnerability. 6) Engage with Linux distribution vendors and cloud providers to confirm that their kernel versions include the fix and that their ARM64 virtualization stacks are updated accordingly.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Norway, Italy, Spain
CVE-2024-53195: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Get rid of userspace_irqchip_in_use Improper use of userspace_irqchip_in_use led to syzbot hitting the following WARN_ON() in kvm_timer_update_irq(): WARNING: CPU: 0 PID: 3281 at arch/arm64/kvm/arch_timer.c:459 kvm_timer_update_irq+0x21c/0x394 Call trace: kvm_timer_update_irq+0x21c/0x394 arch/arm64/kvm/arch_timer.c:459 kvm_timer_vcpu_reset+0x158/0x684 arch/arm64/kvm/arch_timer.c:968 kvm_reset_vcpu+0x3b4/0x560 arch/arm64/kvm/reset.c:264 kvm_vcpu_set_target arch/arm64/kvm/arm.c:1553 [inline] kvm_arch_vcpu_ioctl_vcpu_init arch/arm64/kvm/arm.c:1573 [inline] kvm_arch_vcpu_ioctl+0x112c/0x1b3c arch/arm64/kvm/arm.c:1695 kvm_vcpu_ioctl+0x4ec/0xf74 virt/kvm/kvm_main.c:4658 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:907 [inline] __se_sys_ioctl fs/ioctl.c:893 [inline] __arm64_sys_ioctl+0x108/0x184 fs/ioctl.c:893 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x78/0x1b8 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xe8/0x1b0 arch/arm64/kernel/syscall.c:132 do_el0_svc+0x40/0x50 arch/arm64/kernel/syscall.c:151 el0_svc+0x54/0x14c arch/arm64/kernel/entry-common.c:712 el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:730 el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598 The following sequence led to the scenario: - Userspace creates a VM and a vCPU. - The vCPU is initialized with KVM_ARM_VCPU_PMU_V3 during KVM_ARM_VCPU_INIT. - Without any other setup, such as vGIC or vPMU, userspace issues KVM_RUN on the vCPU. Since the vPMU is requested, but not setup, kvm_arm_pmu_v3_enable() fails in kvm_arch_vcpu_run_pid_change(). As a result, KVM_RUN returns after enabling the timer, but before incrementing 'userspace_irqchip_in_use': kvm_arch_vcpu_run_pid_change() ret = kvm_arm_pmu_v3_enable() if (!vcpu->arch.pmu.created) return -EINVAL; if (ret) return ret; [...] if (!irqchip_in_kernel(kvm)) static_branch_inc(&userspace_irqchip_in_use); - Userspace ignores the error and issues KVM_ARM_VCPU_INIT again. Since the timer is already enabled, control moves through the following flow, ultimately hitting the WARN_ON(): kvm_timer_vcpu_reset() if (timer->enabled) kvm_timer_update_irq() if (!userspace_irqchip()) ret = kvm_vgic_inject_irq() ret = vgic_lazy_init() if (unlikely(!vgic_initialized(kvm))) if (kvm->arch.vgic.vgic_model != KVM_DEV_TYPE_ARM_VGIC_V2) return -EBUSY; WARN_ON(ret); Theoretically, since userspace_irqchip_in_use's functionality can be simply replaced by '!irqchip_in_kernel()', get rid of the static key to avoid the mismanagement, which also helps with the syzbot issue.
AI-Powered Analysis
Technical Analysis
CVE-2024-53195 is a vulnerability identified in the Linux kernel's KVM (Kernel-based Virtual Machine) implementation for the ARM64 architecture. The issue arises from improper management of the userspace_irqchip_in_use static key, which is used to track whether a userspace IRQ chip is in use. The vulnerability manifests when userspace creates a virtual machine (VM) and a virtual CPU (vCPU), initializes the vCPU with the KVM_ARM_VCPU_PMU_V3 flag during KVM_ARM_VCPU_INIT, but does not fully set up required components such as the virtual Generic Interrupt Controller (vGIC) or virtual Performance Monitoring Unit (vPMU). When userspace issues the KVM_RUN command on the vCPU, the kernel attempts to enable the vPMU but fails because it is not properly initialized, causing kvm_arm_pmu_v3_enable() to return an error. Despite this failure, the timer is enabled but the userspace_irqchip_in_use counter is not incremented as expected. If userspace ignores this error and issues KVM_ARM_VCPU_INIT again, the kernel's timer reset function (kvm_timer_vcpu_reset) calls kvm_timer_update_irq, which checks the userspace_irqchip_in_use state. Due to the mismanagement of this static key, the kernel triggers a WARN_ON() condition, indicating an unexpected state that could lead to instability or denial of service. The root cause is the improper use and management of the userspace_irqchip_in_use static key, which the patch replaces with a more reliable check using !irqchip_in_kernel() to avoid this mismanagement and the associated kernel warnings. This vulnerability is specific to ARM64 KVM implementations and affects Linux kernel versions identified by the commit hash 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2. There are no known exploits in the wild, and no CVSS score has been assigned yet. The issue was discovered through syzbot fuzz testing, which triggered the WARN_ON() condition during kernel execution.
Potential Impact
For European organizations, the impact of CVE-2024-53195 primarily concerns environments running ARM64-based Linux systems with KVM virtualization enabled. This includes cloud providers, telecom operators, and enterprises deploying ARM64 servers or edge computing devices. The vulnerability can cause kernel warnings that may lead to system instability or crashes, potentially resulting in denial of service (DoS) conditions on virtualized workloads. This can disrupt critical services, especially in sectors relying on ARM64 infrastructure such as telecommunications (5G infrastructure), IoT deployments, and cloud-native applications. Although there is no evidence of privilege escalation or arbitrary code execution, the instability caused by this vulnerability could be exploited by attackers to degrade service availability or cause unexpected reboots. European organizations with ARM64-based virtualization platforms should be aware that ignoring error returns from KVM ioctl calls can trigger this vulnerability. The lack of known exploits reduces immediate risk, but the potential for DoS in critical infrastructure warrants prompt attention. Furthermore, the complexity of the issue means that debugging and recovery may require specialized kernel knowledge, increasing operational overhead for affected organizations.
Mitigation Recommendations
To mitigate CVE-2024-53195, European organizations should: 1) Apply the latest Linux kernel patches that remove the userspace_irqchip_in_use static key and replace it with the more reliable !irqchip_in_kernel() check, as indicated by the upstream fix. 2) Ensure that userspace virtualization management tools properly handle errors returned by KVM ioctl calls, especially during vCPU initialization and KVM_RUN commands, to avoid ignoring failures that lead to inconsistent kernel states. 3) Audit and update virtualization orchestration scripts and management software to verify complete setup of vGIC and vPMU components before running vCPUs with KVM_ARM_VCPU_PMU_V3 enabled. 4) Monitor kernel logs for WARN_ON() messages related to kvm_timer_update_irq and kvm_timer_vcpu_reset to detect any attempts to trigger this vulnerability. 5) For critical production environments, consider implementing runtime kernel integrity monitoring and automated rollback mechanisms to quickly recover from potential DoS conditions caused by this vulnerability. 6) Engage with Linux distribution vendors and cloud providers to confirm that their kernel versions include the fix and that their ARM64 virtualization stacks are updated accordingly.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-11-19T17:17:25.014Z
- Cisa Enriched
- false
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d9823c4522896dcbdeede
Added to database: 5/21/2025, 9:08:51 AM
Last enriched: 6/28/2025, 10:40:28 AM
Last updated: 8/5/2025, 6:36:12 PM
Views: 15
Related Threats
CVE-2025-8874: CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in litonice13 Master Addons – Elementor Addons with White Label, Free Widgets, Hover Effects, Conditions, & Animations
MediumCVE-2025-8767: CWE-1236 Improper Neutralization of Formula Elements in a CSV File in anwppro AnWP Football Leagues
MediumCVE-2025-8482: CWE-862 Missing Authorization in 10up Simple Local Avatars
MediumCVE-2025-8418: CWE-862 Missing Authorization in bplugins B Slider- Gutenberg Slider Block for WP
HighCVE-2025-47444: CWE-201 Insertion of Sensitive Information Into Sent Data in Liquid Web GiveWP
HighActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.