{"id":17085,"date":"2026-05-01T08:10:57","date_gmt":"2026-05-01T15:10:57","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=17085"},"modified":"2026-05-01T08:10:57","modified_gmt":"2026-05-01T15:10:57","slug":"copy-fail-exploit-lets-732-bytes-hijack-linux-systems-and-quietly-grab-root","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/05\/01\/copy-fail-exploit-lets-732-bytes-hijack-linux-systems-and-quietly-grab-root\/","title":{"rendered":"Copy Fail Exploit Lets 732 Bytes Hijack Linux Systems and Quietly Grab Root"},"content":{"rendered":"\n<p>(Headline article below) The comment below about a future version which can escape Docker containers is troubling. Though, you&#8217;d have to be running a package that got hijacked. Though, it does emphasize that you want to be very vigilant about what software you run, or who you allow to have access to your Linux computers. The only affected systems I have are a couple Raspberry Pis with stock kernels. This Debian server just got new kernel 6.12.85, so I&#8217;d imagine the Pi&#8217;s will get an update soon. You can use rpi-update to update to a newer kernel if concerned about a particular Pi.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8220;The POC exploit works out of the box today, but a future version that can escape from containers like Docker is promised soon,&#8221; writes Slashdot reader <a href=\"https:\/\/slashdot.org\/~tylerni7\">tylerni7<\/a>. &#8220;Technical details are available <a href=\"https:\/\/xint.io\/blog\/copy-fail-linux-distributions\">here<\/a>.&#8221;<\/p>\n\n\n\n<p><a href=\"https:\/\/it.slashdot.org\/story\/26\/04\/30\/207231\/new-linux-copy-fail-vulnerability-enables-root-access-on-major-distros\" target=\"_blank\" rel=\"noreferrer noopener\"><em>https:\/\/it.slashdot.org\/story\/26\/04\/30\/207231\/new-linux-copy-fail-vulnerability-enables-root-access-on-major-distros<\/em><\/a><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Versions 10 Total<\/p>\n\n\n\n<p>Default Status: affected<\/p>\n\n\n\n<p>affected<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>affected at\u00a04.14\u00a0<\/li>\n<\/ul>\n\n\n\n<p>unaffected<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>unaffected from\u00a00\u00a0before\u00a04.14\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a05.10.254\u00a0through\u00a05.10.*\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a05.15.204\u00a0through\u00a05.15.*\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a06.1.170\u00a0through\u00a06.1.*\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a06.6.137\u00a0through\u00a06.6.*\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a06.12.85\u00a0through\u00a06.12.*\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a06.18.22\u00a0through\u00a06.18.*\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a06.19.12\u00a0through\u00a06.19.*\u00a0<\/li>\n\n\n\n<li>unaffected from\u00a07.0\u00a0<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/www.cve.org\/CVERecord?id=CVE-2026-31431\"><em>https:\/\/www.cve.org\/CVERecord?id=CVE-2026-31431<\/em><\/a><\/p>\n<\/blockquote>\n\n\n\n<p><a href=\"https:\/\/nerds.xyz\/2026\/04\/copy-fail-linux-root-exploit\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/nerds.xyz\/2026\/04\/copy-fail-linux-root-exploit\/<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_67d95791-ae86-4ce2-a4fd-77a53a56ee79\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/nerds.xyz\/wp-content\/uploads\/2026\/04\/Sick-penguin-Unsplash-.png\" alt=\"Sick penguin Unsplash\"\/><\/figure>\n\n\n\n<p>By Brian Fagioli<\/p>\n\n\n\n<p>I\u2019m not gonna sugarcoat this one, folks. A new Linux kernel bug just dropped, and it\u2019s the kind of thing that makes you stop and stare at your screen for a second. Not because it\u2019s complicated, but because it isn\u2019t.<\/p>\n\n\n\n<p>The vulnerability, <a href=\"https:\/\/www.cve.org\/CVERecord?id=CVE-2026-31431\" target=\"_blank\" rel=\"noreferrer noopener\">CVE-2026-31431<\/a>, is being called \u201c<a href=\"https:\/\/xint.io\/blog\/copy-fail-linux-distributions\" target=\"_blank\" rel=\"noreferrer noopener\">Copy Fail<\/a>,\u201d and yeah, the name fits. A tiny 732-byte script can give a regular user full root access. No race conditions. No timing tricks. No crashing the system ten times hoping one sticks. It just works. Every time.<\/p>\n\n\n\n<p>That alone would be bad enough. But it gets worse the more you read.<\/p>\n\n\n\n<p>This isn\u2019t some obscure distro-specific issue either. It hits basically everything. Ubuntu, Amazon Linux, RHEL, SUSE. Same script, same result. You don\u2019t need to tweak offsets or rebuild anything. You just run it and suddenly you\u2019re root. That kind of reliability is rare in exploits, and it\u2019s not something you want to see.<\/p>\n\n\n\n<p>What really makes this one feel gross is how it works. The attacker doesn\u2019t actually change files on disk. Instead, it quietly corrupts the page cache, which is what the system uses when it reads and executes files. So the file looks perfectly fine if you check it. Checksums match. Nothing appears modified. But in memory, it\u2019s been altered.<\/p>\n\n\n\n<p>And guess what the kernel trusts? That in-memory version.<\/p>\n\n\n\n<p>So you take something like \/usr\/bin\/su, which runs with elevated privileges, inject a few bytes into its cached copy, and then execute it. Boom. Root shell. The disk never changed, so your usual detection tools just shrug and move on.<\/p>\n\n\n\n<p>That\u2019s the part that really stings. It\u2019s stealthy in a way that feels almost unfair.<\/p>\n\n\n\n<p>We\u2019ve seen scary Linux bugs before. Dirty COW was messy and unreliable. Dirty Pipe was clever but limited. This one is clean. Straight-line. Predictable. It doesn\u2019t even try to hide how effective it is.<\/p>\n\n\n\n<p>And then there\u2019s the container angle, which might be the most unsettling piece of all. Because the page cache is shared, this isn\u2019t just a local problem. In the right setup, this can jump across containers. That means a low-privilege process inside a container could potentially mess with the host or neighboring workloads. If you\u2019re running multi-tenant infrastructure, that should make your stomach drop a bit.<\/p>\n\n\n\n<p>The root cause is basically a bad assumption in the kernel\u2019s crypto subsystem. A specific mode called authencesn writes a few bytes past where it should, and thanks to how the kernel wires things together with AF_ALG and splice, those bytes land directly in the cached contents of a file. That\u2019s it. Four bytes in the wrong place, and the whole system falls apart.<\/p>\n\n\n\n<p>What\u2019s wild is how long this sat there. Years. Quietly. No alarms. No obvious signs. Just waiting for someone to connect the dots.<\/p>\n\n\n\n<p>The fix is already being pushed, and it basically rips out the optimization that made this possible. Which is kind of the theme here, right? A performance tweak from years back ends up opening the door to something nasty.<\/p>\n\n\n\n<p>So yeah, patch your systems. Immediately. Don\u2019t wait. Don\u2019t assume your distro has it handled already. Check.<\/p>\n\n\n\n<p>Because this isn\u2019t one of those \u201cmaybe exploitable in a lab\u201d bugs. This is the opposite. It\u2019s simple, portable, and reliable. That\u2019s a bad combination.<\/p>\n\n\n\n<p>Linux isn\u2019t broken, but moments like this are a reminder that even the stuff we trust the most can have cracks. And sometimes those cracks are just four bytes wide.<\/p>\n\n\n\n<p>You can learn more at the dedicated website <a href=\"https:\/\/copy.fail\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Headline article below) The comment below about a future version which can escape Docker containers is troubling. Though, you&#8217;d have to be running a package that got hijacked. Though, it does emphasize that you want to be very vigilant about what software you run, or who you allow to have access to your Linux computers. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-17085","post","type-post","status-publish","format-standard","hentry","category-tech"],"blocksy_meta":[],"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/17085","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=17085"}],"version-history":[{"count":1,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/17085\/revisions"}],"predecessor-version":[{"id":17086,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/17085\/revisions\/17086"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=17085"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=17085"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=17085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}