The Patching Friars' AlmanacA calendar of CVE saints

Patron of May 7

Dirty FragHoly card for dirty-frag, generated with AI (Claude, Anthropic) for the Lunario dei Frati Patchatori.CC BY-NC-SA 4.0 r--r--r-- Dirty Frag FRAGMENTUM SORDIDUM
🤖 Image and text generated with AI

⬇ Download holy card: ·

Embed on your site

Saint Dirty Frag, Grandchild of Dirty Pipe

Patron of the page cache, kernel modules loaded and never used, and bug families that never die out.

Life

On 7 May 2026, when the embargo broke, Hyunwoo Kim published Dirty Frag: two Linux kernel flaws, in ESP and in RxRPC, that decrypted packets "in place" even when the fragments belonged to a file's page cache. Any user could thus rewrite read-only files in memory and become root on the major distributions, with no race to win and no crash. It descends from Dirty Pipe, and the first of the two bugs had been there since 2017.

Prayer

O Saint Dirty Frag, who dirties fragments that aren't yours, let our packets decrypt into a copy and leave other people's files alone. Amen.

How to celebrate

Celebrated by updating the kernel or, meanwhile, blacklisting esp4, esp6 and rxrpc, then dropping the page cache for good measure.

The Dirty family never misses a party.

Technical record

Disclosed on
May 7 2026
CVE
CVE-2026-43284CVE-2026-43500
CVSS
8.8
Product
Linux · Linux

In the Linux kernel, the following vulnerability has been resolved: xfrm: esp: avoid in-place decrypt on shared skb frags MSG_SPLICE_PAGES can attach pages from a pipe directly to an skb. TCP marks such skbs with SKBFL_SHARED_FRAG after skb_splice_from_iter(), so later paths that may modify packet data can first make a private copy. The IPv4/IPv6 datagram append paths did not set this flag when splicing pages into UDP skbs. That leaves an ESP-in-UDP packet made from shared pipe pages looking like an ordinary uncloned nonlinear skb. ESP input then takes the no-COW fast path for uncloned skbs without a frag_list and decrypts in place over data that is not owned privately by the skb. Mark IPv4/IPv6 datagram splice frags with SKBFL_SHARED_FRAG, matching TCP. Also make ESP input fall back to skb_cow_data() when the flag is present, so ESP does not decrypt externally backed frags in place. Private nonlinear skb frags still use the existing fast path. This intentionally does not change ESP output. In esp_output_head(), the path that appends the ESP trailer to existing skb tailroom without calling skb_cow_data() is not reachable for nonlinear skbs: skb_tailroom() returns zero when skb->data_len is nonzero, while ESP tailen is positive. Thus ESP output will either use the separate destination-frag path or fall back to skb_cow_data().

Sources: dirtyfrag.io · github.com · lwn.net · wiz.io · seclists.org · core-jmp.org · ikotaslabs.com

📅 Add to your calendar

Saints:Google CalendarApple, Outlook and others (.ics)

Observances (feasts, scourges and miracles):Google CalendarApple, Outlook and others (.ics)

In Google Calendar you can also paste the URL in Settings → Add calendar → From URL. The first sync can take a few hours.