CVE-2026-79979
Last modified
CVE-2026-79979 is a high-severity vulnerability rated 7.8/10 on the CVSS scale. The arm64 MMU backend invalidates a single virtual address from the TLB with invalidate_tlb_page() in arch/arm64/core/mmu.c, which issued TLBI VAE1{IS} with an operand of virt >> 12. That operand encodes the ASID in bits [63:48], so the invalidation only ever matched ASID 0 (the kernel page tables) and global entries. EPSS estimates a 0.10% chance of exploitation in the next 30 days.
Description
The arm64 MMU backend invalidates a single virtual address from the TLB with invalidate_tlb_page() in arch/arm64/core/mmu.c, which issued TLBI VAE1{IS} with an operand of virt >> 12. That operand encodes the ASID in bits [63:48], so the invalidation only ever matched ASID 0 (the kernel page tables) and global entries. Memory domains, however, are allocated ASIDs starting at 1 in arch_mem_domain_init(), and every domain-private leaf created by private_map() is mapped with MT_NG, i.e. non-global. A domain's cached translation therefore survived the invalidation. All callers of invalidate_tlb_page() are demand-paging paths. When the eviction algorithm reclaims a frame, page_frame_prepare_locked() in kernel/mmu.c calls arch_mem_page_out(), which marks the kernel leaf invalid, propagates the invalid descriptor into every domain via sync_domains(), and then flushes only ASID 0. do_page_fault() immediately reuses the very same page frame for the incoming mapping through arch_mem_page_in(). A user thread that had already touched the evicted page — a k_mem_partition added with arch_mem_domain_partition_add(), or its own stack mapped by map_thread_stack() — retains a valid EL0 read/write translation to that physical frame under its own ASID. Unprivileged code running in a user thread can drive memory pressure to force eviction and then keep accessing the stale address, obtaining read and write access to whatever the kernel subsequently placed in that frame: supervisor data, another memory domain's partition, or another thread's stack. This defeats the isolation that CONFIG_USERSPACE is meant to enforce, allowing information disclosure and memory corruption up to full compromise of the system. The fix switches the implementation to TLBI VAAE1{IS}, which matches every ASID and both global and non-global entries, so no domain-tagged translation survives a page out, dirty-bit update or access-flag clear. Exploitation requires an arm64 build with both CONFIG_USERSPACE and CONFIG_DEMAND_PAGING enabled, an active backing store, and at least one demand-paged page that is also privately mapped into a user memory domain. The same commit additionally stops globalize_table() from stripping EL0 permission and non-global attributes off domain-private leaves during paging synchronization, which previously caused user threads to lose access to their own partitions and stacks.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 4.3.0, < 4.5.0 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-79979?
How severe is CVE-2026-79979?
How do I fix CVE-2026-79979?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-79973Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…6.3
- CVE-2026-79974Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…6.4
- CVE-2026-79975Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…5.5
- CVE-2026-79976The MCTP-over-I2C+GPIO target binding in subsys/pmci/mctp/mc…7.1
- CVE-2026-79977The WireGuard VPN service in subsys/net/lib/wireguard/wg.c u…8.2
- CVE-2026-79978The RTIO streaming completion callback adxl345_process_fifo_…3.6
- CVE-2026-7998Insufficient validation of untrusted input in Dialog in Goog…5.4
- CVE-2026-79980The DHCPv4 client in subsys/net/lib/dhcpv4/dhcpv4.c maintain…5.6
- CVE-2026-79981The DNS stub resolver in subsys/net/lib/dns/resolve.c binds …6.5
- CVE-2026-79982The Bluetooth HCI USB transport class of the new USB device …8.8
- CVE-2026-79983Improper Limitation of a Pathname to a Restricted Directory …7.4
- CVE-2026-79984Improper Limitation of a Pathname to a Restricted Directory …7.4
Are you affected by CVE-2026-79979?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
