MEDIUM 5.5

CVE-2026-53343: Linux ARM Kernel Alignment Fault in __switch_to() with KASAN VMALLOC

A bug in the Linux kernel's ARM architecture code causes system crashes when two security features (KASAN memory debugging and virtual memory stack protection) are both enabled. The problem stems from an instruction that tries to read data from memory in a way that ARM processors don't allow—the instruction assumes the address is word-aligned when it may not be. When the kernel switches between processes, it crashes with an alignment exception before the system even fully boots. The fix is straightforward: use a byte-sized read instead of a word-sized read, since KASAN shadow memory tracks bytes anyway.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
Affected products
8 configuration(s)
Published / Modified
2026-07-01 / 2026-07-23

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: ARM: 9475/1: entry: use byte load for KASAN VMAP stack shadow Commit 44e9a3bb76e5 ("ARM: 9430/1: entry: Do a dummy read from VMAP shadow") added a dummy read from the KASAN VMAP stack shadow in __switch_to(). The read uses ldr, but the KASAN shadow address is byte-granular and is not guaranteed to be word aligned. ARMv5 faults unaligned word loads. With CONFIG_KASAN_VMALLOC and CONFIG_VMAP_STACK enabled, ARM926/VersatilePB crashes in __switch_to() with an alignment exception before reaching init. Use ldrb for the dummy shadow access. The code only needs to fault in the shadow mapping if the stack shadow is missing, so a byte load is sufficient and matches the granularity of KASAN shadow memory.

6 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-53343 involves an unaligned memory access in the ARM __switch_to() function introduced by commit 44e9a3bb76e5. That commit added a dummy read from KASAN VMAP stack shadow space to fault in shadow mappings. The code uses an ldr (load register) instruction, which performs a 32-bit word load and requires 4-byte alignment. KASAN shadow memory is byte-granular and the shadow address is not guaranteed to be word-aligned. On ARMv5 processors (e.g., ARM926 with VersatilePB), unaligned word loads trigger data abort exceptions. With both CONFIG_KASAN_VMALLOC and CONFIG_VMAP_STACK enabled, this causes a crash during context switch before the kernel initializes user space. The resolution changes ldr to ldrb (load register byte), which respects byte granularity and prevents the alignment fault.

Business impact

This vulnerability affects systems running Linux on older ARM processors with KASAN and VMAP stack protection compiled in. Impacted deployments experience system unavailability—the kernel crashes during early boot, preventing the system from reaching a usable state. For embedded and IoT devices using ARM926 or similar processors with these kernel configurations, this becomes a critical availability issue. Organizations cannot run affected kernel versions on these architectures without workarounds. The fix is minimal and low-risk, so patching is straightforward once identified.

Affected systems

The vulnerability affects the Linux kernel across multiple versions where the problematic commit (44e9a3bb76e5) is present. It manifests specifically on ARMv5-compatible processors (including ARM926 and compatible cores) when both CONFIG_KASAN_VMALLOC and CONFIG_VMAP_STACK kernel configuration options are enabled. Systems without these configurations enabled, or running on ARM architectures that permit unaligned word loads (ARMv6 and later), are not affected. The issue is architecture and configuration-specific, making it primarily relevant to embedded Linux systems and custom ARM kernel builds.

Exploitability

This is not exploitable by external attackers. It is a reliability flaw triggered deterministically during kernel initialization when specific configurations are present. The crash occurs during the context switch in __switch_to(), which is called before user space starts. No privilege escalation, data exfiltration, or other attack vector exists. The vulnerability manifests only as a denial of service in the form of boot failure for affected configurations. It affects system stability rather than security posture.

Remediation

Apply a kernel patch that replaces the ldr instruction with ldrb in the ARM __switch_to() shadow access code. This single-instruction change aligns the memory access with KASAN's byte-granular shadow memory model and eliminates the alignment fault. Verify that your kernel version includes the fix commit (expected to land in the stable and mainline trees post-publication). For systems currently affected, either disable one of the two configurations (CONFIG_KASAN_VMALLOC or CONFIG_VMAP_STACK), upgrade to a patched kernel version, or build with a version that predates the problematic commit 44e9a3bb76e5.

Patch guidance

Apply the patch that changes the KASAN VMAP stack shadow access from ldr (word load) to ldrb (byte load) in the ARM entry code. This fix should be verified against the official Linux kernel tree and Linux distribution advisories. The patch is minimal (one instruction change) and low-risk. After applying, rebuild the kernel with both CONFIG_KASAN_VMALLOC and CONFIG_VMAP_STACK enabled and test on ARM926 or compatible hardware to confirm boot success. Check your Linux distribution or kernel.org for availability in stable branch updates.

Detection guidance

Detection is primarily post-incident: if an ARM-based system with CONFIG_KASAN_VMALLOC and CONFIG_VMAP_STACK enabled fails to boot with an alignment exception in __switch_to() or related context-switch code, this vulnerability is the likely cause. Review kernel logs (if available via serial console or previous boots) for 'Alignment fault' or 'Data abort' messages pointing to __switch_to(). Proactively audit your ARM kernel builds: check the .config file for both KASAN_VMALLOC and VMAP_STACK settings and the kernel version against the affected range. Build systems should test configurations on target hardware before deployment.

Why prioritize this

This vulnerability rates as medium priority for affected organizations. While the CVSS score reflects local access and availability impact (5.5), the practical priority depends on your deployment: organizations using ARM926-class processors with both KASAN_VMALLOC and VMAP_STACK enabled face boot failures and should patch immediately. Organizations using modern ARM (ARMv6+), x86, or other architectures, or those without these specific kernel configurations, can deprioritize but should still track the fix to ensure future kernel updates don't reintroduce similar issues. The fix is simple and carries low regression risk.

Risk score, explained

The CVSS 3.1 score of 5.5 (Medium) reflects the availability impact (denial of service via boot failure) combined with local-only attack surface and no privilege escalation. The score does not account for the narrow affected population (older ARM processors with specific kernel configurations). For those few affected systems, the real-world impact is severe (complete unavailability). For the broader Linux install base, the risk is negligible. Prioritize based on whether you operate the specific hardware and kernel configurations mentioned.

Frequently asked questions

Does this affect my Linux system?

Only if you are running the Linux kernel on an ARMv5 processor (such as ARM926) AND have both CONFIG_KASAN_VMALLOC and CONFIG_VMAP_STACK enabled in your kernel configuration. Most modern systems (ARM64, ARMv7, x86) and systems without these specific debug/security features enabled are unaffected.

What does the crash look like?

The system fails to boot, producing an alignment fault or data abort exception in the __switch_to() function before user space initialization. You may see 'Alignment fault' or similar messages on the serial console, and the system will not reach the login prompt.

Is there a workaround if I cannot patch immediately?

Yes. Rebuild your kernel with either CONFIG_KASAN_VMALLOC disabled or CONFIG_VMAP_STACK disabled (but not both are required to be off—you only need to disable one). This eliminates the problematic code path. However, you will lose some memory debugging or stack protection capability, so patching is preferred.

Will this affect future kernel updates?

Once a patched version is available from your Linux distribution or the upstream kernel, future updates based on that version will include the fix. Ensure you are tracking updates from your distribution's security advisory channels.

This analysis is provided for informational purposes. The vulnerability details, CVSS score, and affected products are sourced from official CVE records and Linux kernel advisories. Patch availability and version numbers should be verified against official Linux distribution security advisories and the upstream Linux kernel repository before deployment. Testing in a non-production environment is strongly recommended before applying patches to production systems. This vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, indicating no known active exploitation in the wild at the time of publication. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).