DirtyDecrypt: Linux Local Privilege Escalation Exploit Surfaces for Unpatched Systems
A proof-of-concept for 'DirtyDecrypt'—a local privilege escalation flaw in the Linux kernel's RXGK module—is now public. Organizations using the AFS client mus…

Security researchers from the V12 security team released a proof-of-concept (PoC) exploit today, May 18, 2026, for a local privilege escalation (LPE) vulnerability in the Linux kernel's rxgk module. Dubbed "DirtyDecrypt," the flaw was independently reported by the team on May 9, but was subsequently identified by mainline maintainers as a duplicate of a bug already patched on April 25. However, the availability of functional exploit code transforms this bug from a routine changelog entry into a concrete threat for systems running with CONFIG_RXGK enabled that have not yet deployed the update.
- The PoC exploits a pagecache write lacking a COW (Copy-On-Write) guard within the
rxgk_decrypt_skbfunction of therxgkmodule. - V12 reported the flaw on May 9, 2026, but the bug was patched in the mainline kernel as of April 25, 2026, according to analyst Will Dormann.
- There is no dedicated CVE ID for the duplicate V12 report; Dormann suggests the flaw likely corresponds to CVE-2026-31635.
- The attack surface is limited to systems compiled with
CONFIG_RXGKenabled, which is required for RxGK support in the Andrew File System (AFS) client.
From Duplicate Report to Immediate Threat
The technical timeline began on May 9, when the V12 team submitted their findings to kernel maintainers. The response was immediate: the issue was known and a fix had been integrated into the mainline kernel on April 25, 2026. Security analyst Will Dormann noted that the technical details provided by V12 align with CVE-2026-31635, even though the duplicate report was not assigned a unique CVE identifier.
The absence of a distinct identifier for the V12 report creates a potential blind spot in vulnerability management. Many organizations prioritize remediation based on CVE IDs; without one, there is a tangible risk that security teams—especially those not monitoring mainline kernel commits directly—may underestimate the priority of the patch. While Dormann’s assessment provides a useful reference point, it remains an analytical correlation until formal confirmation is provided.
The release of the PoC on May 18 changes the risk calculus. For patched systems, the risk remains theoretical; for those lagging behind, it is now an urgent operational deadline. Publicly available exploit code significantly lowers the barrier to entry for attackers, shifting the priority from simple monitoring to immediate remediation.
"We found and reported this on May 9, 2026, but was informed it was a duplicate by the maintainers"
— V12 security team
Technical Analysis: The RXGK Pagecache Flaw
The core of the vulnerability lies in a pagecache write operation performed without the necessary COW (Copy-On-Write) guard in the rxgk_decrypt_skb function. This oversight allows an attacker with existing local access to manipulate shared memory and trigger an escalation to root privileges. The vulnerability is tied strictly to the rxgk module, which provides RxGK security support for the Andrew File System (AFS) client.
Exploitation requires a preliminary local foothold; an attacker must already have shell access or an established presence on the target machine. From there, the exploit manipulates the pagecache through the vulnerable function, bypassing memory isolation controls to gain root access. While the vector is a threat multiplier rather than an initial entry point, its severity is high: once executed, it grants complete control over the system, effectively neutralizing any security mechanisms based on privilege separation.
Mind the Patch Gap
While the April 25 mainline fix is technically definitive, its efficacy in the field depends entirely on the distribution chain. OS vendors must backport the commit, rebuild packages, and distribute them to users. While rolling releases may have a short latency, custom builds or isolated environments may lag significantly. Today’s PoC release eliminates any remaining safety margin: any kernel running with CONFIG_RXGK that has not ingested the update is now vulnerable to a public exploit.
Assessing the Attack Surface
Not every Linux environment is exposed. The exploit only functions on kernels compiled with CONFIG_RXGK enabled—a configuration that is far from universal. The V12 PoC was specifically tested on Fedora and the mainline kernel. It has not yet been verified on Arch Linux or openSUSE Tumbleweed, though logic suggests that any rolling release utilizing AFS and RxGK could be affected if unpatched.
Conversely, enterprise platforms utilizing customized LTS kernels may not include the rxgk module in their default configurations, drastically reducing the perimeter. The primary uncertainty lies with custom systems or internal builds where visibility into compilation options may be fragmented. Rolling releases represent the highest risk profile, as they integrate mainline changes quickly but require diligent administrators to ensure updates are actually applied.
A Fedora system updated after April 25 should be secure. However, a system left unpatched is now exposed to a verified, public exploit. The primary challenge for security teams is to map their specific build configurations rather than assuming a kernel version alone is a sufficient indicator of safety.
Strategic Response and Mitigation
To mitigate the risk of DirtyDecrypt, organizations should prioritize configuration verification alongside patching.
- Verify if the active kernel includes the
rxgkmodule and ifCONFIG_RXGKis enabled. If active, confirm that the April 25, 2026, patch has been integrated into the production environment. - On systems where an immediate update is not feasible, apply a temporary mitigation by blocking the kernel modules
esp4,esp6, andrxrpc. Note that this will disable IPsec VPN connections and access to distributed AFS filesystems. - Audit endpoints to determine if the
rxgkmodule is loaded and if the system actively utilizes the AFS client with RxGK to calibrate response priority based on real-world exposure. - Update vulnerability management policies to track any formal CVE assignment to the V12 report, aligning internal procedures with the final nomenclature of the bug.
The DirtyDecrypt incident highlights the shrinking window between a patch and a public exploit, even when a bug has been technically known for weeks. For organizations managing heterogeneous fleets, the uncomfortable truth remains: a fix in the source code does not equal protection for a running system. In this instance, the limited attack surface provides a buffer—but only for those who know exactly what is running on their servers.
Frequently Asked Questions
I updated my kernel after April 25. Am I safe?
If your vendor's build includes the mainline patch and you utilize RxGK for AFS, the fix should be effective. You should still verify the specific presence of the update and ensure CONFIG_RXGK is disabled if it is not required for your operations.
Is the PoC dangerous for servers not using AFS?
No. The rxgk module is a strict requirement. If CONFIG_RXGK is not enabled in your build configuration or the module is not loaded, the system is not vulnerable to this specific vector.
Why is there no official CVE for DirtyDecrypt?
Kernel maintainers classified the V12 report as a duplicate. Unless an independent report is accepted as a new finding, a unique CVE ID is typically not generated, though analyst Will Dormann has linked the flaw to CVE-2026-31635.
Information verified against cited sources and accurate at the time of publication.