Microsoft’s Security Response Center has published an advisory for a Linux kernel denial-of-service vulnerability that can crash systems running Azure Linux, the company’s own distribution used in its cloud services. The flaw, designated CVE-2024-53090, stems from a spinlock recursion bug in the Andrew File System (AFS) subsystem and can be triggered by a local attacker to cause a kernel panic. Administrators are urged to apply the kernel update that resolves the issue by deferring cleanup work to a background queue.

What Happened with CVE-2024-53090?

In November 2024, a fix was merged into the mainline Linux kernel for a lock re-entry problem that could bring down any Linux machine with the AFS kernel module loaded. The bug occurs in the interaction between the AF_RXRPC network transport and the afs_call structure that represents a remote procedure call. When afs_wake_up_async_call attempts to reference an afs_call object that is already queued for processing, an extra reference count is created. Dropping this extra reference can trigger a cleanup path that calls back into the RXRPC layer and tries to re-acquire the ->notify_lock spinlock while it is still held, producing a fatal “spinlock recursion” condition.

The result is a kernel oops or full system panic. The immediate patch moves the problematic reference release to a workqueue, ensuring that the lock is never held when the callback runs. This solution is a classic deferred-free pattern used to break circular lock dependencies in kernel code.

Affected Systems and Versions

The vulnerability affects Linux kernel versions prior to 6.11.9, as well as the 6.12 release candidates (rc1 through rc4). Any distribution shipping a vulnerable kernel can be impacted if the AFS module is loaded. Microsoft’s advisory, however, singles out Azure Linux—the lightweight, cloud-optimized distribution that powers many Azure services, container hosts, and infrastructure workloads. No other Microsoft product is known to contain the vulnerable code.

For Azure Linux users, the fix has been backported into the distribution’s kernel packages. The exact package versions depend on the edition of Azure Linux (e.g., CBL-Mariner 2.0 or 3.0), but administrators can obtain the patch through the standard package management tools (tdnf or apt).

Why an Azure Linux Kernel Bug Matters to You

Though CVE-2024-53090 carries a CVSS base score of 5.5 (Medium) and requires local access, its operational impact can be severe for certain environments. Here’s how it may affect you based on your role.

For Cloud and IT Administrators

If you manage Azure virtual machines, container instances, or services like Azure Kubernetes Service (AKS) that rely on Azure Linux base images, this vulnerability can lead to unexpected outages. A local user—even with low privileges—could trigger a kernel panic, crashing the entire host. In multi-tenant or shared systems, such as CI/CD runners, jump hosts, or development servers, an attacker could disrupt many workloads with a single attack.

The bug does not compromise data confidentiality or integrity, but a kernel panic can corrupt filesystem metadata and lead to extended downtime. Recovery might require rebooting the virtual machine and performing filesystem checks, which can take minutes or hours depending on storage scale. For critical services, this represents a tangible business risk.

For Developers and Power Users

If you are developing inside Azure Linux containers or running Azure Linux on your local machine (e.g., under Windows Subsystem for Linux 2 with a custom kernel), you might be vulnerable if you have explicitly enabled AFS. The default WSL2 kernel does not include the AFS module, so most developers are safe. However, those who compile custom kernels with AFS support for network filesystem testing should verify their kernel versions and apply the patch.

For Everyday Windows Users

If you only use Windows and do not administer any Linux servers, this advisory likely does not affect you. However, it serves as a reminder that even cloud services you rely on can be impacted by kernel-level flaws, and you should trust that your service providers patch such issues promptly.

The Technical Backstory: How a Spinlock Goes Wrong

Spinlocks are low-level synchronization primitives used in the kernel to protect critical sections of code that may be accessed from multiple CPUs. They are designed to be held for very short periods, and the kernel prohibits acquiring the same spinlock twice on the same CPU—doing so leads to a deadlock or, in debug kernels, a hard crash with the “BUG: spinlock recursion” message.

The AFS bug is a textbook case of a re-entrancy problem. The sequence that triggers it can be summarized as follows:

  1. The RXRPC layer receives data and calls into AFS while holding the ->notify_lock spinlock.
  2. Inside that call, afs_wake_up_async_call tries to queue a work item and takes a reference to an afs_call. If the call was already queued, an extra reference is created.
  3. When that extra reference is freed via afs_put_call, the call may be in a state that requires shutting down the RXRPC connection, which invokes rxrpc_kernel_shutdown_call.
  4. This function attempts to acquire the same ->notify_lock that is already held, causing a spinlock recursion and an immediate kernel bug.

The fix breaks the cycle by deferring the afs_put_call via a workqueue. When the worker executes, the lock is no longer held, so any re-entry is safe. This change was surgically applied to the AFS code and has been accepted into upstream and stable trees.

Timeline of the Fix

  • Early November 2024: Linux kernel developers identify and report the spinlock recursion bug in the AFS subsystem.
  • November 12, 2024: The patch is merged into the mainline kernel (commit series visible in the kernel.org repository) and a CVE identifier is assigned.
  • Late November 2024: Kernel version 6.11.9 is released, along with updates to long-term stable branches, incorporating the fix.
  • Subsequently: Microsoft’s Security Response Center publishes the advisory for Azure Linux and begins distributing updated kernel packages.

Microsoft’s advisory page for CVE-2024-53090 remains the authoritative source for Azure Linux-specific guidance.

Immediate Steps to Protect Your Systems

Step 1: Update Your Kernel

For Azure Linux instances, apply the update through the package manager:

sudo tdnf update kernel

or

sudo apt update && sudo apt upgrade

After the update, reboot the system to load the new kernel.

Step 2: Mitigate Without a Reboot

If immediate patching is not possible, you can remove the attack surface by unloading the AFS kernel module:

sudo rmmod afs

First ensure no processes are using AFS (check with lsmod | grep afs). On Azure Linux, the module may not be loaded by default unless explicitly configured.

If AFS is compiled into the kernel (i.e., not a module), you must reboot into a kernel without AFS support or livepatch the system if your distribution offers kernel livepatching.

Step 3: Monitor for Exploitation Attempts

Watch your kernel logs for oops messages that contain the hallmark of this bug. Enable continuous monitoring with a tool like systemd-journald forwarding to a central log server. Set up alerts for patterns such as:

  • BUG: spinlock recursion
  • rxrpc_kernel_shutdown_call
  • afs_put_call
  • rxrpc_notify_socket
  • rxrpc_io_thread

These stack trace fragments confirm that the vulnerable code path was triggered, even if an attacker doesn’t succeed in crashing the system.

The Bigger Picture and Next Steps

CVE-2024-53090 is a sharp reminder that kernel-level availability bugs can lurk in long-established subsystems and emerge only under specific conditions. While AFS is not widely used compared to other network filesystems like NFS, its inclusion in certain Azure configurations means that admins must treat this advisory seriously.

Microsoft has stated that it will update the CVE if impacts on additional products are discovered. For now, Azure Linux is the sole affected offering. The fix’s workqueue approach is a battle-tested pattern that should prevent regressions, but organizations should still test the updated kernel in a staging environment before deploying to production.

Looking forward, maintainers of the AFS and RXRPC subsystems may perform broader audits to catch similar lock-ordering bugs. For administrators, the key takeaway remains simple: treat kernel patches as urgent, especially when they address denial-of-service vulnerabilities that can be triggered locally by unprivileged users. Subscribe to vendor security channels and maintain an inventory of the Linux kernels running in your environment—the few minutes spent applying a patch can save hours of outage response.