Ausgangspunkt ist das Linux-Werkzeug tc für Traffic Control. Damit lassen sich Paket-Header während der Übertragung umschreiben; eine der dafür vorgesehenen Aktionen heißt pedit. Die zuständige Kernel-Funktion tcf_pedit_act() soll vor Änderungen eigentlich eine private Kopie der Daten anlegen, also dem üblichen Copy-on-Write-Muster folgen.
Genau dort liegt der Fehler. Der schreibbare Bereich wird nur einmal geprüft, bevor die endgültigen Offsets feststehen. Einige Bearbeitungsschlüssel lösen ihren Offset jedoch erst zur Laufzeit auf. In diesem Fall landet der Schreibzugriff außerhalb des privat kopierten Bereichs. Statt einer privaten Kopie verändert der Kernel dann eine gemeinsam genutzte Page-Cache-Seite. Gehört diese Seite zu einer zwischengespeicherten Datei, wird deren Abbild im Speicher beschädigt.
Der veröffentlichte Exploit nutzt genau dieses Verhalten aus. Er fasst die Datei auf dem Datenträger nicht an, sondern vergiftet die im Speicher liegende Cache-Kopie von /bin/su, schleust eine kleine Nutzlast ein und startet anschließend dieses manipulierte Abbild mit Root-Rechten. Nach Angaben des PoC-Autors gelang die Rechteausweitung von einem unprivilegierten Nutzer zu Root auf RHEL 10 und Debian 13 (trixie), weil dort unprivilegierte User-Namespaces standardmäßig offen sind.
Auf Ubuntu 24.04 musste die Ausführung über AppArmor-Profile geleitet werden, die User-Namespaces weiterhin zulassen. Ubuntu 26.04 blockiert diesen Weg standardmäßig, weil die AppArmor-Profile unprivilegierte User-Namespaces einschränken. Der zugrunde liegende Kernel bleibt laut Quelltext dennoch verwundbar.
Neu ist bei dieser Klasse von Fehlern vor allem der Einstiegspunkt. Der Quelltext zieht Parallelen zu Dirty Pipe, Copy Fail, DirtyClone und Dirty Frag: In all diesen Fällen schreibt ein schneller Kernel-Pfad in eine Seite, die ihm nicht exklusiv gehört, worunter der Page Cache leidet. Bei „pedit COW“ kommt hinzu, dass ein unprivilegierter Nutzer tc-Aktionen aus einem User-Namespace heraus konfigurieren kann und so an das für den Exploit nötige CAP_NET_ADMIN gelangt.
Die Korrekturen werden je nach Anbieter getrennt ausgeliefert. Empfohlen wird die Installation eines gepatchten Kernels samt Neustart. Falls ein Update noch nicht möglich ist, nennt der Quelltext zwei Gegenmaßnahmen, die die Angriffskette unterbrechen: Systeme ohne Bedarf an tc-pedit-Regeln können prüfen, ob das Modul genutzt wird, und das Laden von act_pedit unterbinden. Alternativ lassen sich unprivilegierte User-Namespaces abschalten, auf RHEL mit user.max_user_namespaces=0 und auf Debian/Ubuntu mit kernel.unprivileged_userns_clone=0. Der Quelltext weist jedoch darauf hin, dass damit rootlose Container, einige CI-Sandboxes und sandboxed Browser beeinträchtigt werden können.
Weil sich die Überschreibung gegen zwischengespeicherten Speicher richtet, können Datei-Integritätsprüfungen den Angriff verfehlen. Das Leeren des Page Cache mit echo 3 > /proc/sys/vm/drop_caches entfernt zwar die manipulierte Kopie im Speicher, ändert aber nichts an einer bereits geöffneten Root-Shell. Der Patch erschien laut Quelltext Ende Mai auf der netdev-Mailingliste und war dort als gewöhnliche Korrektur eines Datenkorruptionsfehlers beschrieben. Die sicherheitsrelevante Tragweite blieb damit wochenlang öffentlich sichtbar, bevor die CVE am 16. Juni mit der Zusammenführung des Fixes vergeben wurde; der bewaffnete Proof of Concept folgte innerhalb eines Tages.
