CVE-2026-43249
High · 8.8CVSS
8.8
EPSS
0.3%
Published
May 6, 2026
CISA due date
—
Cloudanix analysis
A flaw in some Linux systems running on Xen can let a bad or faulty shared-filesystem backend crash the system and disrupt services.
- Exploitation
- Adjacent Network
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This flaw is a race condition in the Linux kernel Xen 9p filesystem front-end teardown path. Concurrent Xen backend state-change notifications can cause xen_9pfs_front_free() to run more than once against the same front-end state, resulting in a double-free and subsequent use of freed memory. In observed failures this triggers a kernel general protection fault in the xenwatch thread and crashes the guest kernel. Because the bug occurs in kernel memory management, a sufficiently controlled race may have broader memory-corruption consequences, including potential compromise of confidentiality, integrity, and availability of the affected guest system.
Why it matters to the business
Systems using Linux as Xen guests with the Xen 9p filesystem front-end enabled may be vulnerable to guest crashes or instability if a malicious, compromised, or faulty Xen 9p backend triggers the race. Operationally, this can cause service outages, interrupted workloads, failed jobs, and potential loss of trust in shared virtualization infrastructure. The EPSS score is currently low and there is no known CISA KEV listing or public exploit maturity reported, but the high CVSS rating means exposed Xen-based environments should still prioritize kernel updates during the next urgent maintenance window.
How an attack unfolds
An attacker needs a position that can influence Xen backend state changes for a 9p filesystem presented to a Linux guest, such as control of a malicious backend, a compromised service domain, or a faulty/malicious virtualization management path. The attacker repeatedly causes backend change notifications so the guest xenwatch thread and another notification path enter the 9p front-end teardown flow at nearly the same time. Without proper serialization, both paths call xen_9pfs_front_free() for the same object. The first call releases the front-end state; the second call dereferences or frees already released memory. In the commonly observed outcome, the guest kernel hits a general protection fault and crashes. In a more advanced exploitation scenario, the double-free may be shaped into kernel memory corruption, depending on kernel configuration, allocator behavior, timing, and available primitives.
How to fix it
Upgrade affected Linux kernels to a vendor-supported release that includes the fix for the Xen 9p front-end double-free race in xen_9pfs_front_free(). Because no exact fixed package versions were provided, rely on distribution security advisories and kernel changelogs referencing the 9p/xen fix that protects xen_9pfs_front_free() against concurrent calls. If immediate patching is not possible, reduce exposure by disabling Xen 9p filesystem sharing where it is not required, avoiding untrusted 9p backends, isolating or hardening Xen service/backend domains, and limiting administrative paths that can create or modify Xen 9p devices. Reboot into the updated kernel after patch installation; merely installing kernel packages is not sufficient if the running kernel remains vulnerable.
How to confirm the fix worked
Confirm the running kernel, not just the installed package, has been updated by checking uname -r and comparing it with the vendor advisory for the fixed build. Verify whether Xen 9p support is present or in use by reviewing loaded modules, kernel configuration, Xen device listings, and guest mount configuration for 9p filesystems. After remediation, exercise normal Xen 9p attach/detach or backend restart workflows in a test environment and confirm that backend state changes no longer produce kernel oops messages involving xen_9pfs_front_free, xen_9pfs_front_changed, or xenwatch_thread. Review boot and kernel logs after reboot to ensure the system is running the corrected kernel and has not recorded related crashes.
Typical attack path
- Identify or obtain influence over a Xen 9p backend connected to a Linux guest.
- Cause repeated or carefully timed backend state-change notifications for the 9p filesystem device.
- Trigger concurrent teardown handling in the guest, including the xenwatch thread path.
- Force xen_9pfs_front_free() to be invoked twice on the same front-end state.
- Cause kernel memory corruption, commonly resulting in a guest kernel oops, panic, or crash.
- Optionally attempt to shape the double-free for broader kernel compromise if allocator conditions and exploitation primitives permit.
How to detect it
Look for evidence of prior exploitation or triggering in guest kernel logs, persistent journals, hypervisor/service-domain logs, crash dumps, and monitoring alerts. On Linux guests, search dmesg, /var/log/kern.log, /var/log/messages, /var/log/syslog, systemd journal entries, kdump vmcores, and crash reporting systems for kernel oops or panic traces naming xen_9pfs_front_free, xen_9pfs_front_changed, or xenwatch_thread. Correlate guest crashes with Xen backend state changes, service-domain restarts, 9p device attach/detach operations, or management-plane activity. In hypervisor and backend/service-domain logs, review events involving Xen 9p devices, xenbus state transitions, backend disconnects, and repeated reconnect or teardown activity immediately before the guest crash. There may be no network IOC because exploitation is local to the virtualization backend/guest interface rather than a conventional IP service.
- xen_9pfs_front_free
- xen_9pfs_front_changed
- xenwatch_thread
- general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b6b
- Oops: general protection fault
- RIP: e030:xen_9pfs_front_free
- Call Trace:
- xenbus_otherend_changed
- Modules linked in:
- ---[ end trace
- 9p/xen
- xen_9pfs
- Comm: xenwatch
What your security team should do
- Inventory Linux systems running as Xen guests and identify which use Xen 9p filesystem sharing.
- Prioritize patching Xen guest kernels that use 9p/xen, run sensitive workloads, or depend on high availability.
- Confirm systems have rebooted into a fixed kernel after patch deployment.
- Temporarily disable Xen 9p filesystem devices where they are not business-critical.
- Restrict trust in Xen 9p backends and harden service domains that provide shared filesystem functionality.
- Monitor kernel logs and crash telemetry for xen_9pfs_front_free, xen_9pfs_front_changed, xenwatch_thread, and general protection faults.
- Treat unexpected guest kernel crashes in Xen 9p environments as potentially security-relevant until logs show a benign cause.
- Track vendor advisories for exact fixed kernel versions because upstream fixes may be backported under distribution-specific version numbers.
The record
In the Linux kernel, the following vulnerability has been resolved: 9p/xen: protect xen_9pfs_front_free against concurrent calls The xenwatch thread can race with other back-end change notifications and call xen_9pfs_front_free() twice, hitting the observed general protection fault due to a double-free. Guard the teardown path so only one caller can release the front-end state at a time, preventing the crash. This is a fix for the following double-free: [ 27.052347] Oops: general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b6b: 0000 [#1] SMP DEBUG_PAGEALLOC NOPTI [ 27.052357] CPU: 0 UID: 0 PID: 32 Comm: xenwatch Not tainted 6.18.0-02087-g51ab33fc0a8b-dirty #60 PREEMPT(none) [ 27.052363] RIP: e030:xen_9pfs_front_free+0x1d/0x150 [ 27.052368] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 41 55 41 54 55 48 89 fd 48 c7 c7 48 d0 92 85 53 e8 cb cb 05 00 48 8b 45 08 48 8b 55 00 <48> 3b 28 0f 85 f9 28 35 fe 48 3b 6a 08 0f 85 ef 28 35 fe 48 89 42 [ 27.052377] RSP: e02b:ffffc9004016fdd0 EFLAGS: 00010246 [ 27.052381] RAX: 6b6b6b6b6b6b6b6b RBX: ffff88800d66e400 RCX: 0000000000000000 [ 27.052385] RDX: 6b6b6b6b6b6b6b6b RSI: 0000000000000000 RDI: 0000000000000000 [ 27.052389] RBP: ffff88800a887040 R08: 0000000000000000 R09: 0000000000000000 [ 27.052393] R10: 0000000000000000 R11: 0000000000000000 R12: ffff888009e46b68 [ 27.052397] R13: 0000000000000200 R14: 0000000000000000 R15: ffff88800a887040 [ 27.052404] FS: 0000000000000000(0000) GS:ffff88808ca57000(0000) knlGS:0000000000000000 [ 27.052408] CS: e030 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 27.052412] CR2: 00007f9714004360 CR3: 0000000004834000 CR4: 0000000000050660 [ 27.052418] Call Trace: [ 27.052420] <TASK> [ 27.052422] xen_9pfs_front_changed+0x5d5/0x720 [ 27.052426] ? xenbus_otherend_changed+0x72/0x140 [ 27.052430] ? __pfx_xenwatch_thread+0x10/0x10 [ 27.052434] xenwatch_thread+0x94/0x1c0 [ 27.052438] ? __pfx_autoremove_wake_function+0x10/0x10 [ 27.052442] kthread+0xf8/0x240 [ 27.052445] ? __pfx_kthread+0x10/0x10 [ 27.052449] ? __pfx_kthread+0x10/0x10 [ 27.052452] ret_from_fork+0x16b/0x1a0 [ 27.052456] ? __pfx_kthread+0x10/0x10 [ 27.052459] ret_from_fork_asm+0x1a/0x30 [ 27.052463] </TASK> [ 27.052465] Modules linked in: [ 27.052471] ---[ end trace 0000000000000000 ]---
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119338 Tesseract is an open source OCR engine. CWE-415
- CVE-2026-119116 A use-after-free and double-free issue in the SetClient command handler of the… CWE-415
- CVE-2026-85890 Double free in Microsoft Edge (Chromium-based) allows an unauthorized attacker to execute… CWE-415
- CVE-2026-83831 Double free in Microsoft Edge (Chromium-based) allows an unauthorized attacker to execute… CWE-415
- CVE-2026-88812 A double free in XKB SetGeometryin X.Org X Server before 21.1.25 and X Wayland before… CWE-415
- CVE-2026-116743 libyal libmsiecf through 20260525 contains a double free vulnerability in… CWE-415
- CVE-2026-112457 A double free issue was addressed with improved memory management. CWE-415
- CVE-2026-78116 The Broadcom AFBR-S50 time-of-flight sensor driver double-completes an RTIO submission… CWE-415