CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-43284

CVE-2026-43284: "Dirty Frag" Local Privilege Escalation via Linux Kernel Page Cache Corruption

Alon Barad
Alon Barad
Software Engineer

May 12, 2026·7 min read·1045 visits

Executive Summary (TL;DR)

A logic error in the Linux kernel allows unprivileged users to overwrite the memory cache of read-only files by exploiting the MSG_SPLICE_PAGES flag alongside ESP-in-UDP decryption. This enables direct manipulation of critical configuration files and arbitrary code execution as root.

CVE-2026-43284, identified as "Dirty Frag", is a critical local privilege escalation vulnerability in the Linux kernel's handling of shared socket buffer fragments during Encapsulating Security Payload (ESP) decryption. The flaw permits unprivileged local adversaries to corrupt the Linux page cache, establishing a write-what-where primitive that can be leveraged to overwrite read-only system files such as /etc/passwd and achieve immediate root privilege escalation.

Vulnerability Overview

CVE-2026-43284, commonly referred to as "Dirty Frag" or "Copy Fail 2", is a critical local privilege escalation (LPE) vulnerability affecting the Linux kernel. Discovered by security researcher Hyunwoo Kim (@v4bel), the flaw resides in the interaction between the network socket buffer (skb) fragmentation subsystem and the Encapsulating Security Payload (ESP) processing mechanism. The vulnerability allows an unprivileged local attacker to execute arbitrary writes against memory pages mapped to the system's page cache.

The core of the issue is a missing state flag when the kernel handles the MSG_SPLICE_PAGES directive during IPv4 and IPv6 datagram appending. This directive attaches data from a pipe directly to a socket's buffer without executing a copy operation. If the source of the pipe is a file, the resulting socket buffer fragments reference the Linux page cache directly. The kernel fails to properly mark these fragments as shared memory.

The vulnerability is classified under CWE-123 (Write-what-where Condition) and CWE-787 (Out-of-bounds Write). By exploiting the lack of copy-on-write enforcement during ESP decryption, an attacker can modify the contents of any file they have read access to. This directly undermines the operating system's permission model and facilitates complete system compromise.

Root Cause Analysis

The root cause of CVE-2026-43284 is the omission of the SKBFL_SHARED_FRAG flag during the processing of UDP datagram appends via the __ip_append_data function. The MSG_SPLICE_PAGES feature relies on this flag to indicate that the memory pages attached to a socket buffer (skb) are shared with other kernel subsystems. Without this flag, downstream consumers of the skb assume they possess exclusive ownership of the memory fragments.

When an IPsec ESP packet is received and processed, the ESP subsystem evaluates the socket buffer to determine if it can optimize the decryption process. The subsystem inspects the skb for shared or cloned flags. Due to the missing SKBFL_SHARED_FRAG flag, the ESP subsystem determines that the fragments are private and proceeds with a fast-path, in-place decryption routine.

This in-place decryption executes directly over the memory addresses provided by the socket buffer fragments. Because these fragments actually point to the Linux page cache for the spliced file, the decryption operation overwrites the file's cached data. The kernel does not trigger a copy-on-write (COW) fault because it incorrectly believes it is operating on private socket memory.

The corruption is limited to the system's volatile memory. However, since the operating system serves subsequent read requests for that file from the corrupted page cache, the attacker successfully alters the file's contents from the perspective of all other processes.

Code Analysis

The vulnerable code resides in the network append paths, primarily net/ipv4/ip_output.c and net/ipv6/ip6_output.c. When MSG_SPLICE_PAGES is passed to sendmsg(), the kernel splices pages from the pipe buffer into the socket buffer fragments. The implementation failed to assign the SKBFL_SHARED_FRAG flag to the skb_shinfo(skb)->tx_flags.

The patch addresses this exact omission. Commit a6cb440f274a22456ef3e86b457344f1678f38f9 enforces copy-on-write semantics for shared fragments in the ESP receive path. The ESP subsystem now forces an evaluation of the shared state and triggers skb_cow_data() before any in-place decryption occurs.

/* Vulnerable state logic */
if (skb_cloned(skb) || skb_header_cloned(skb)) {
    err = skb_cow_data(skb, 0, &trailer);
    if (err < 0)
        goto error;
}
/* In-place decryption proceeds here, unaware of page cache backing */

The fix introduces strict checking for the SKBFL_SHARED_FRAG flag across the datagram append functions. By explicitly flagging the fragments generated via MSG_SPLICE_PAGES, the kernel ensures that subsequent consumers, including the IPsec stack, correctly identify the memory as shared and perform the necessary memory allocations to avoid overwriting the page cache.

/* Patched state logic */
if (skb_cloned(skb) || skb_header_cloned(skb) || 
    (skb_shinfo(skb)->flags & SKBFL_SHARED_FRAG)) {
    err = skb_cow_data(skb, 0, &trailer);
    if (err < 0)
        goto error;
}

Exploitation Methodology

Exploiting CVE-2026-43284 requires local access to the vulnerable system and read permissions on the target file. The attacker initiates the exploit chain by opening a sensitive system file, such as /etc/passwd, in read-only mode. The attacker then creates a pipe and utilizes the splice() system call to move data from the file descriptor into the pipe without copying the data into userspace.

Next, the attacker opens a UDP socket and invokes sendmsg() with the MSG_SPLICE_PAGES flag, providing the pipe as the data source. This action forces the kernel to attach the pipe's memory pages directly to the socket buffer. At this stage, the socket buffer contains fragments that point directly to the page cache of /etc/passwd.

The final step involves triggering the ESP subsystem to process the malicious socket buffer. The attacker transmits a crafted IPsec ESP packet to the system, designed to match the UDP socket. The kernel routes the packet through the ESP decryption fast-path, which overwrites the underlying memory fragments with the decrypted payload.

Publicly available proof-of-concept repositories, such as V4bel/dirtyfrag, demonstrate this technique by replacing the root user's password hash in the corrupted /etc/passwd cache. Attackers then use standard su or ssh commands to authenticate as root using the newly injected credentials. Microsoft and other vendors have observed this exact execution chain in active post-compromise campaigns.

Impact Assessment

The impact of CVE-2026-43284 is absolute system compromise. By leveraging the write-what-where primitive, an unprivileged user bypasses all standard discretionary and mandatory access controls. Modifying sensitive files in the page cache allows attackers to inject malicious shared libraries, alter execution paths, or rewrite authentication databases.

The vulnerability holds a CVSS v3.1 score of 8.8 (High). While the attack vector is local (AV:L), the low complexity (AC:L) and lack of user interaction (UI:N) make it a highly reliable post-exploitation tool. The scope changes (S:C) because the exploit originates within an unprivileged context but corrupts the central kernel memory management system.

In containerized environments, this vulnerability frequently enables container escape. If the container shares the underlying host's kernel and has read access to host-mapped volumes or binaries, the attacker can overwrite files visible to the host operating system. This facilitates lateral movement from an isolated container to the underlying node.

Remediation and Mitigation

The primary and most effective remediation for CVE-2026-43284 is applying the upstream Linux kernel security patches. Administrators must verify that their kernel is updated to a patched version, such as 5.10.255, 5.15.205, 6.1.171, 6.6.138, 6.12.87, or 6.18.28. Applying the patch completely eliminates the vulnerable code path by enforcing copy-on-write semantics for MSG_SPLICE_PAGES payloads.

In environments where immediate patching is not feasible, administrators can implement network-level mitigations. Disabling the IPsec ESP subsystem or blocking UDP port 4500 (ESP-in-UDP) prevents the exploit chain from reaching the vulnerable decryption logic. This mitigation is only viable for systems that do not rely on IPsec for network communications.

> [!NOTE] > Relying exclusively on File Integrity Monitoring (FIM) tools like AIDE or Tripwire is insufficient for prevention. The corruption occurs in volatile memory and may not trigger disk-based integrity checks immediately.

Security teams should deploy runtime behavioral detection rules. Solutions utilizing eBPF, such as Falco, can detect the exploit pattern by monitoring for processes executing sendmsg with the MSG_SPLICE_PAGES flag immediately following a splice() syscall on a pipe file descriptor. Anomalous modifications to critical authentication files should also trigger immediate incident response procedures.

Fix Analysis (1)

Technical Appendix

CVSS Score
8.8/ 10
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
EPSS Probability
0.01%
Top 100% most exploited

Affected Systems

Linux KernelUbuntuDebianRed Hat Enterprise Linux

Affected Versions Detail

Product
Affected Versions
Fixed Version
Linux Kernel
Linux Foundation
>= 4.11, < 5.10.2555.10.255
Linux Kernel
Linux Foundation
>= 5.12, < 5.15.2055.15.205
Linux Kernel
Linux Foundation
>= 5.16, < 6.1.1716.1.171
Linux Kernel
Linux Foundation
>= 6.2, < 6.6.1386.6.138
Linux Kernel
Linux Foundation
>= 6.7, < 6.12.876.12.87
Linux Kernel
Linux Foundation
>= 6.13, < 6.18.286.18.28
Linux Kernel
Linux Foundation
>= 7.0, < 7.0.57.0.5
AttributeDetail
CWE IDCWE-123, CWE-787
Attack VectorLocal (AV:L)
CVSS v3.18.8
EPSS Score0.00007
ImpactLocal Privilege Escalation (Root)
Exploit StatusActive Exploitation
Vulnerable SubsystemESP / MSG_SPLICE_PAGES

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
T1548Abuse Elevation Control Mechanism
Privilege Escalation
T1485Data Destruction
Impact
CWE-123
Write-what-where Condition

The software allows an attacker to execute an arbitrary write to a user-controlled memory location, altering the system state.

Known Exploits & Detection

GitHub (Original Researcher)Original proof-of-concept provided by the researcher.
GitHubUniversal local privilege escalation script.
GitHubKubernetes node escape proof-of-concept.
GitHubExploit port for ARM64 architectures.

Vulnerability Timeline

Vulnerability details leaked and embargo broken.
2026-05-07
CVE-2026-43284 assigned and public PoC released by v4bel.
2026-05-08
Microsoft and Sysdig report active exploitation in the wild.
2026-05-08
Major Linux distributions begin releasing security patches.
2026-05-09

References & Sources

  • [1]NVD Vulnerability Detail - CVE-2026-43284
  • [2]Wiz Blog: Dirty Frag Linux Kernel Local Privilege Escalation
  • [3]Microsoft Security Blog: Active Attack Dirty Frag
  • [4]Linux Kernel Source Patch
  • [5]OSS-Security Mailing List Announcement
Related Vulnerabilities
CVE-2026-43500

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•22 minutes ago•CVE-2026-57232
3.1

CVE-2026-57232: Server-Side Request Forgery in Contao CMS Feed Reader Module

A Server-Side Request Forgery (SSRF) vulnerability exists in the Contao Open Source Content Management System (CMS) within the Feed Reader front-end module. When processing RSS feed configurations, the module initiates outbound HTTP connections using a default HTTP client that lacks loopback and private network controls. Authenticated backend users with permissions to configure frontend modules can exploit this flaw to coerce the server into sending requests to internal endpoints, loopback addresses, and cloud instance metadata services.

Amit Schendel
Amit Schendel
3 views•7 min read
•about 1 hour ago•CVE-2026-63498
8.7

CVE-2026-63498: Stored Cross-Site Scripting via Inline XML Rendering in Snipe-IT API

CVE-2026-63498 is a high-severity Stored Cross-Site Scripting (XSS) vulnerability in Snipe-IT prior to version 8.7.0. The flaw resides in the REST API's file retrieval endpoint, which allows files to be rendered inline without sanitizing or restricting malicious content types like XML and XSLT stylesheets, leading to browser-side script execution in the context of the application's origin.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 2 hours ago•CVE-2026-19730
4.2

CVE-2026-19730: Podman Quadlet Install Non-Truncating Write Retains Removed Host-Access/Security Directives

CVE-2026-19730 is a local security vulnerability in the Podman container engine's Quadlet systemd generator. When updating existing configurations using 'podman quadlet install --replace' on filesystems that do not support reflink operations (such as standard ext4), the file is opened without the O_TRUNC flag. If the new configuration file is shorter than the pre-existing file, the trailing lines of the old file remain intact and are successfully parsed by systemd, leading to a failure to remove security-critical parameters like AddCapability, User, or host storage mounts.

Alon Barad
Alon Barad
4 views•7 min read
•about 3 hours ago•CVE-2026-63493
8.6

CVE-2026-63493: Multi-Factor Authentication Bypass via Stateless API Token Flow in Snipe-IT

Snipe-IT prior to version 8.7.0 is vulnerable to an authentication bypass (CVE-2026-63493 / GHSA-hxcx-9h4f-42xx) within its Laravel Passport API integration. When multi-factor authentication (MFA/2FA) is enabled, an attacker possessing a victim's password can bypass MFA controls completely. This occurs because the Laravel middleware that enforces MFA was registered only in the stateful 'web' middleware group, leaving the stateless 'api' middleware group unguarded. Consequently, an attacker can use a valid password to initiate a session, bypass the MFA prompt on the web UI by communicating directly with the API, and generate a long-lived Personal Access Token (PAT) to perform unauthorized operations.

Alon Barad
Alon Barad
5 views•6 min read
•about 19 hours ago•CVE-2026-57576
6.5

CVE-2026-57576: Application-Level Denial of Service via Uncontrolled Resource Consumption in Plone

CVE-2026-57576 is an application-level Denial of Service (DoS) vulnerability in Plone. It resides in the `plone.app.dexterity` and `plone.app.contenttypes` packages, allowing authenticated users with content creation permissions to submit excessively long metadata attributes. Because these fields are stored without length limits and subsequently processed by indexing and rendering engines, they trigger complete server resource exhaustion and thread starvation.

Alon Barad
Alon Barad
8 views•9 min read
•about 20 hours ago•GHSA-8PCW-H6W9-H46G
6.5

GHSA-8PCW-H6W9-H46G: Denial of Service via Uncontrolled Resource Consumption in plone.app.contenttypes

An uncontrolled resource consumption vulnerability in plone.app.contenttypes allows authenticated users to trigger application-level denial of service via oversized filename metadata in file uploads.

Amit Schendel
Amit Schendel
7 views•6 min read