CVE-2026-53067: Linux Kernel PCI Endpoint MSI Double-Free Memory Vulnerability
A memory management flaw in the Linux kernel's PCI endpoint MSI (Message Signaled Interrupt) module can allow a local attacker with low privileges to cause a denial of service or potentially gain elevated access. The vulnerability occurs during doorbell allocation when MSI vector requests fail—the kernel fails to properly clean up allocated memory, leaving stale pointers that can be dereferenced later or reallocated, leading to exploitable conditions. The issue also allows an attacker to repeatedly attempt allocation of the same resource without proper gating, potentially triggering the flaw multiple times.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-415
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-21
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: PCI: endpoint: pci-ep-msi: Fix error unwind and prevent double alloc pci_epf_alloc_doorbell() stores the allocated doorbell message array in epf->db_msg/epf->num_db before requesting MSI vectors. If MSI allocation fails, the array is freed but the EPF state may still point to freed memory. Clear epf->db_msg and epf->num_db on the MSI allocation failure path so that later cleanup cannot double-free the array and callers can retry allocation. Also return -EBUSY when doorbells have already been allocated to prevent leaking or overwriting an existing allocation.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53067 is a double-free and use-after-free vulnerability in the Linux kernel's PCI endpoint MSI implementation (pci-epf-alloc-doorbell function). The vulnerable code allocates a doorbell message array and stores pointers in epf->db_msg and epf->num_db, then requests MSI vectors. If MSI allocation fails, the array is freed but the EPF (Endpoint Function) data structure retains the old pointers. This creates two failure modes: (1) a subsequent cleanup or retry attempt may double-free the already-freed array, and (2) callers unaware of the allocation failure may attempt to use stale memory references. Additionally, the function lacks a guard against re-allocation attempts on already-allocated doorbells, enabling resource exhaustion or state corruption. The fix requires clearing the EPF pointers on MSI failure and returning -EBUSY on repeated allocation attempts.
Business impact
This vulnerability affects systems running vulnerable Linux kernels with PCI endpoint functionality enabled, particularly embedded devices, IoT appliances, and specialized hardware platforms that use kernel-level PCI endpoint drivers. A local attacker (user-space process on the same system) can trigger the flaw to cause kernel crashes, escalate privileges, or potentially execute arbitrary code in kernel context. Organizations relying on PCI endpoint functionality for device firmware updates, device-to-device communication, or specialized I/O operations face service interruption or compromise risks until patching is applied.
Affected systems
The Linux kernel is affected, specifically the PCI endpoint MSI module. Exposure is limited to systems where PCI endpoint functionality is compiled and enabled in the kernel. This includes custom embedded Linux builds, IoT devices, automotive systems, and industrial equipment that use PCI endpoint drivers for inter-device communication or firmware provisioning. Standard desktop and server deployments with PCI endpoint disabled are not at risk. Organizations should audit their kernel configurations to determine if CONFIG_PCI_ENDPOINT or related modules are active.
Exploitability
Exploitability is moderate. The vulnerability requires local access (a user-space process or privileged code path on the system) and low privilege levels to trigger. The flaw does not require special userland tools—it can be triggered through normal system calls and device I/O operations targeting the PCI endpoint driver. An attacker with shell access or an unprivileged application capable of accessing PCI endpoint sysfs/ioctl interfaces can reliably reproduce the condition. However, successful exploitation to achieve code execution depends on kernel address space layout randomization (ASLR) and other mitigations, making reliable exploitation more difficult but not infeasible for a motivated attacker. Denial of service via kernel crash is straightforward.
Remediation
Apply kernel patches that implement proper cleanup of epf->db_msg and epf->num_db on MSI allocation failure, and add a guard to prevent re-allocation when doorbells are already allocated. Monitor Linux kernel security advisories and upstream git commits for this CVE. Verify patch availability from your Linux distribution (Red Hat, Canonical, SUSE, etc.). As an interim mitigation, disable PCI endpoint functionality if it is not required (compile kernel without CONFIG_PCI_ENDPOINT or remove the module).
Patch guidance
Consult the Linux kernel upstream repository and your distribution's security advisories for the specific patch version. Patches will be integrated into stable kernel releases following the CVE announcement. Verify the patch against the vendor advisory to confirm the fix addresses both the double-free on MSI failure and the re-allocation guard. Test patched kernels in a non-production environment before broad deployment, particularly on systems where PCI endpoint is actively used. Organizations using long-term support (LTS) kernels should prioritize updates, as LTS versions may take longer to receive patches.
Detection guidance
Monitor kernel logs for oops, panic, or memory corruption warnings involving the pci-epf or pci_ep_msi modules. Use kernel debugging tools (kgdb, kdump) to capture crash dumps if the system experiences sudden resets or hangs related to PCI endpoint operations. In user space, monitor for processes repeatedly opening or closing PCI endpoint device files or sysfs interfaces, which may indicate exploitation attempts. Intrusion detection systems (IDS) should flag repeated failed device I/O operations on /sys/class/pci_ep or /dev/pci_ep* nodes. If KASAN (Kernel Address Sanitizer) is enabled, it will detect double-free and use-after-free conditions on affected systems.
Why prioritize this
This vulnerability warrants HIGH priority patching because it affects kernel memory safety, allows local privilege escalation, and impacts systems where PCI endpoint functionality is in active use. The CVSS 7.8 score reflects the severity: local attack vector, low privilege requirement, and high impact across confidentiality, integrity, and availability. While exploitation requires local access and is not as immediately critical as a remote unauthenticated flaw, the kernel-level nature of the vulnerability and the potential for code execution make swift remediation essential for any organization deploying vulnerable kernel versions on systems with PCI endpoint enabled.
Risk score, explained
The CVSS 3.1 score of 7.8 (HIGH) is justified by: (1) Attack Vector: Local—requires presence on the system, but not remote; (2) Attack Complexity: Low—no special conditions needed to trigger the flaw; (3) Privileges Required: Low—standard user-space process can trigger it; (4) User Interaction: None; (5) Impact: High across all three dimensions—confidentiality (kernel memory disclosure), integrity (memory corruption leading to code execution), and availability (kernel crash). The score does not account for ASLR or other runtime mitigations that may reduce exploitability in practice, but assumes a worst-case scenario where an attacker can reliably achieve kernel-level impact.
Frequently asked questions
Does this affect my Linux system?
Only if your kernel is compiled with PCI endpoint support enabled and you are running a vulnerable kernel version. Most standard desktop and server Linux installations do not enable this feature. Check your kernel config: grep CONFIG_PCI_ENDPOINT /boot/config-$(uname -r). If the result is 'n' or missing, you are not affected. Custom embedded, IoT, and automotive Linux builds are at higher risk.
Can this be exploited remotely?
No. This vulnerability requires local access to the system—an attacker must already have a user-space process running on the device or privileged code execution. It cannot be exploited over the network without first compromising a local account or process.
What is the difference between this CVE and a typical memory leak?
This is not a simple memory leak. It is a double-free and use-after-free vulnerability, meaning the same memory location can be freed twice or referenced after being freed. These are more severe than leaks because they can lead to kernel crashes, information disclosure of kernel memory, or even arbitrary code execution if an attacker can control what is allocated in the freed region.
What should I do if I can't patch immediately?
Disable PCI endpoint support if it is not essential to your operations. This typically requires rebuilding the kernel without CONFIG_PCI_ENDPOINT or blacklisting the pci_epf module. Additionally, restrict user-space access to PCI endpoint device files and sysfs interfaces using filesystem permissions and SELinux/AppArmor policies. Monitor kernel logs closely for signs of exploitation.
This analysis is based on the CVE description and CVSS vector provided and current as of the publication date. Security researchers and system administrators should verify all technical details, patch availability, and affected kernel versions against official Linux kernel security advisories and their distribution's security bulletins before taking action. Proof-of-concept code and detailed exploitation techniques are not provided in this document. Organizations are advised to conduct their own risk assessment and testing in non-production environments before applying patches to production systems. SEC.co does not provide warranties regarding the completeness or accuracy of this analysis and recommends consulting directly with Linux kernel maintainers and your distribution's security team for vendor-specific guidance. Source: NVD (public-domain), retrieved 2026-08-01. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-46129HIGHLinux Kernel Btrfs Double-Free Memory Corruption – Privilege Escalation
- CVE-2026-46162HIGHLinux ice Driver Double-Free Kernel Vulnerability — Privilege Escalation Risk
- CVE-2026-46164HIGHLinux Btrfs Double-Free Kernel Vulnerability – Patch Guidance
- CVE-2026-46183HIGHLinux DAMON Use-After-Free Race Condition (CVSS 7.8)
- CVE-2026-46189HIGHLinux Kernel RDMA vmw_pvrdma Double Free Vulnerability
- CVE-2026-46279HIGHLinux Kernel Memory Allocation Tracking Bug
- CVE-2026-53009HIGHLinux ice Driver Double-Free Vulnerability – Local Privilege Escalation
- CVE-2026-11576HIGHeclipse-threadx NetX Duo HTTP PUT Double-Close DoS