CVE 2026 31431, allmänt känd som "Copy Fail", är en mycket allvarlig lokal sårbarhet för privilegieeskalering som påverkar Linux-kärnan. Problemet påverkar kärnor som levereras av alla större Linux-distributioner sedan 2017 och gör det möjligt för en lokal, icke-privilegierad användare att få körning på rotnivå på värdsystemet.
Sårbarheten härrör från ett logiskt fel i Linux-kärnans kryptografiska delsystem, särskilt gränssnittet algif_aead som exponeras via AF_ALG-uttag. Under vissa förhållanden tillåter detta fel kontrollerad modifiering av kärnanssidcache iminnetförskrivskyddadefiler, inklusive setuid-rotbinärer. När en sådan modifierad binär fil körs kan angriparen få utökade privilegier.
Påverkan
En angripare med lokal kodkörning (t.ex. ett standardanvändarkonto, ett komprometterat servicekonto, ett fotfäste för containerbrytning eller ett skadligt CI-jobb) kan
- Utöka behörigheterna till root
- Ändraexekveringssökvägeniminnetför betrodda binära filer utan att ändra filer på disken
- Undvika detekteringsmekanismer som enbart förlitar sig på filintegritetsövervakning
- Potentiellt undkomma containrarpå plattformarmed deladkärnapå grund av den globala karaktären hos Linux sidcache
Till skillnad från tidigareLinux-privilegieeskaleringsfel, Copy Fail:
- Kräver inte tävlingsförhållanden
- Beror inte påkärnspecifikaminnesoffsets
- Är deterministisk och portabel mellan olika distributioner
Berörda system
- Linuxkärnor 4.14 och senare som inkluderar 2017 årsAEAD-optimering påplats ialgif_aead
- Alla större distributioner som levererar kärnor byggda från 2017 tills leverantörens korrigeringar tillämpas
Rekommendationer
- Patch kärnan på alla berörda system som den primära lösningen. Det här beteendet är på kärnans sida; kontroller i användarutrymmet är inte tillräckliga.
- Begränsa användningen av AF_ALG för icke betrodda arbetsbelastningar med seccomp, SELinux, AppArmor, containerpolicy eller härdningsprofiler om dessa arbetsbelastningar inte kräver kryptouttag i kärnan.
Proof-of-Concept-validering och Integrity360-testning
Integrity360 genomförde kontrollerad dynamisk analys av offentligt tillgängliga CopyFail-konceptbevisladdningar för att validera exploaterbarhet och bedöma operativ risk.
Dynamisk analys genom exekvering av nyttolasterna visade att utnyttjandet riktar sig mot Linux "Copy Fail"-buggen genom att korrumpera sidcachen för en skyddad körbar fil, särskilt "su", utan att öppna filen för skrivning. Nyttolasten öppnar målet skrivskyddat, driver upprepade gånger ett kryptogränssnitt för kärnan genom "AF_ALG", flyttar målbackad data genom splice och rapporterar sedan att sidcachen har muterats innan målet körs.
Detta är inte en normal filöverskrivning. Exploiten missbrukar en kopieringsväg på kärnsidan så att den cachade minnesbilden av den körbara filen ändras trots att filbeskrivaren är skrivskyddad. Spåret av dynamisk analys visar att exekveringen svänger genom "sh -c su", följt av exekvering av "su", som inte längre beter sig som den ursprungliga "setuid"-hjälpen utan istället faller igenom till "sh".Under exekveringen observerade vi att "setgid(0)" och"setuid(0)" misslyckades med "EPERM", vilket är förenligt med att förhöjda privilegier undertrycks under spårning; exploateringsbeteendet är fortfarande synligt eftersom exekveringen omdirigeras till ett skal.
Teknisk förklaring
Exploateringen börjar med att öppna "su" med "O_RDONLY " och tillkännager en nyttolast på 1704 byte (426 iterationer). Det numret är viktigt: slingan verkar lappa målet i bitar om 4 byte, med 426 x 4 = 1704. Varje iteration skapar ett nytt "AF_ALG "-uttag, binder det till en "AEAD "-kryptosökväg, ställer in algoritmparametrar med"setsockopt" och skickar ett litet, utformat kontrollblock med"sendmsg".
Det kritiska steget är de två skarvuppropen. Först skarvas byte från den skrivskyddade målfilbeskrivaren till ett rör. Sedan skarvas de från pipen till det accepterade "AF_ALG"-uttaget. Det håller överföringen inom kärnutrymmet och undviker en normal skrivning i användarutrymmet. Efter varje försökreturnerar"recvfrom""EBADMSG", vilket indikerar att kryptooperationen misslyckades ur användarutrymmets perspektiv, men spåret visar starkt att utnyttjandet förlitar sig på en bieffekt på kärnan som överlever det misslyckandet.
Mot slutet av spårningen utför exploateringen hela överföringen på 1704 byte, stänger deskriptorerna, skriver ut page cache mutated; executing target och kör omedelbart "sh -c su".Det leder till "execve("/usr/bin/su", ...)", sedan misslyckade"setgid(0)" och"setuid(0)", och slutligen "execve("/bin/sh", ["sh"], [])". Denna sekvens indikerar att den cachade bilden av "su" har modifierats så att exekveringen inte längre följer den ursprungliga programlogiken.
De mest kritiska syscallen
- openat:
- Öppnar su skrivskyddat. Detta är viktigt eftersom det visar att utnyttjandet inte kräver skrivåtkomst till målfilen.
- socket(AF_ALG, SOCK_SEQPACKET, 0) följt av bind
- Dessa väljer kärnans kryptogränssnitt och den sårbara bearbetningsstigen.
- setsockopt:
- Konfigurerar AF_ALG-operationen så att den förfalskade begäran kan accepteras och behandlas.
- sendmsg:
- Levererar kontrolldata och patchmaterial för varje iteration.
- pipe2:
- Skapar buffertvägen i kärnan som används för att överbrygga filstödda sidor till kryptouttaget.
- skarv:
- Detta är kärnutnyttjandet primitivt i spåret. Exploateringen skarvar först från målfilen till röret, sedan från röret till AF_ALG-uttaget. Det är syscall-paret som är mest direkt knutet till den faktiska cache-korruptionen.
- recvfrom:
- Returnerar upprepade gånger EBADMSG. Detta är viktigt eftersom det visar att utnyttjandet lyckas trots ett uppenbart operationsfel, vilket innebär att korruptionen inträffar innan felet dyker upp.
- execve:
- Bekräftar exploateringsresultatet genom att omedelbart köra den manipulerade målbanan och sedan falla in i sh.
Kärnversioner som använts i Integrity360-testning
Framgångsrik exploatering
-
Linux 5.4.0-122-generisk (x86_64)
Misslyckad exploatering
-
Linux 7.0.0-15-generic (x86_64, patchad kärna)
Referens för nyttolast
h ttps:// github.com/tgies/copy-fail-c
Om du är orolig för något av de hot som beskrivs i denna bulletin eller behöver hjälp med att avgöra vilka åtgärder du bör vidta för att skydda dig mot de mest väsentliga hoten mot din organisation, vänligen kontakta din kontoansvarige, eller alternativt kontakta oss för att ta redapå hur du kan skydda din organisation.
