Theori beschreibt Copy Fail in einer ausführlichen Analyse als „logischen Fehler in der kryptografischen Vorlage authenc des Linux-Kernels". Ein authentifizierter Nutzer kann darüber zuverlässig einen „4-Byte-Schreibzugriff in den Page-Cache einer beliebigen lesbaren Datei des Systems" auslösen.
Möglich wird das durch die Kombination zweier Mechanismen: der Socket-Schnittstelle AF_ALG, die aus dem Userspace Zugriff auf die Krypto-Funktionen des Kernels gewährt, und dem Systemaufruf splice(). So lässt sich ein kontrollierter Vier-Byte-Schreibzugriff in den Page-Cache einer Datei richten statt in einen normalen Puffer. Treffen diese vier Byte eine setuid-root-Binärdatei, lässt sich deren Verhalten bei der Ausführung verändern – und der Angreifer erhält Root-Rechte.
Eingeführt wurde der Fehler 2017, als das Kernel-Team eine „In-Place"-Optimierung im Krypto-Pfad ergänzte. Seither wird derselbe Puffer wiederverwendet, statt Ein- und Ausgabe strikt zu trennen.
Theori vergleicht Copy Fail eher mit der „Dirty Pipe"-Schwachstelle als mit typischen Lücken zur Rechteausweitung – mit dem Unterschied, dass Copy Fail zuverlässiger und breiter ausnutzbar sei. „Copy Fail ist portabler. Ein Skript, jede Distribution, keine Offsets. Dirty Pipe brauchte Kernel ≥ 5.8 mit bestimmten Patches; Copy Fail deckt das gesamte Fenster von 2017 bis 2026 ab", so die Forscher.
Behoben wurde CVE-2026-31431 am 1. April, indem das problematische „In-Place"-Verhalten zurückgenommen wurde, das mit Kernel-Version 4.14 im Jahr 2017 eingeführt worden war. Die Korrekturen liegen in den Versionen 6.18.22, 6.19.12 und 7.0 vor.
Laut Theori verteilen große Distributionen den Fix bereits über Kernel-Updates. Will Dormann, leitender Schwachstellenanalyst bei Tharros, weist allerdings darauf hin, dass es keine „offiziellen Updates für CVE-2026-31431" gebe: „Fedora 42 und neuer haben Updates, aber keine offizielle Meldung oder Bestätigung zu CVE-2026-31431."
Als Übergangsmaßnahme empfehlen die Forscher, die verwundbare Krypto-Schnittstelle zu deaktivieren – also das Erzeugen von AF_ALG-Sockets zu unterbinden oder das Modul algif_aead abzuschalten:
echo “install algif_aead /bin/false” > /etc/modprobe.d/disable-algif.conf rmmod algif_aead
Beim Einspielen der Patches sollten Mehrmandanten-Hosts, Kubernetes- und Container-Cluster, CI-Runner sowie Build-Farmen und Cloud-SaaS-Dienste, auf denen Nutzercode läuft, Vorrang haben.
