Kopieringsfeil: Linux-sårbarheten som gir root-tilgang gjennom sidebuffering

Viktige punkter:
  • Angriperen Ã¥pner en AF_ALG-socket og ber om autentiseringsalgoritmen.
  • Angriperen bruker splice() for Ã¥ mate socketen med sider fra mÃ¥lfilens cache (f.eks. /usr/bin/su). Disse sidene blir deretter en del av hashlisten som sendes ut (skrivbare).
  • Angriperen sender en melding (sendmsg) med ondsinnet utformede tilknyttede autentiserte data (AAD), der byte 4–7 inneholder dataene de ønsker Ã¥ skrive (f.eks. ondsinnet kode).
  • NÃ¥r dekryptering utløses, tar authencesn disse fire bytene fra AAD-en og skriver dem midlertidig til slutten av bufferen. PÃ¥ grunn av optimalisering pÃ¥ stedet peker denne enden av bufferen direkte til filbuffersiden.
  • Kryptografioperasjonen mislykkes (krypteringsteksten er ugyldig), men 4-byte-skrivingen har allerede skjedd og blir aldri reversert.
  • Angriperen gjentar prosessen for Ã¥ injisere koden sin. NÃ¥r /usr/bin/su kjøres, laster kjernen den modifiserte versjonen fra minnet og kjører den injiserte koden med root-rettigheter.

kopieringsfeil

Linux-sikkerhet står overfor en ny utfordring etter oppdagelsen av sårbarhet CVE-2026-31431, kalt «Kopieringsfeil» av forskerne ved Xint Code. Langt fra å være en teoretisk feil, dette designproblemet Det lar en lokal bruker uten rettigheter heve tillatelsene sine og få full tilgang. som superbruker på en forutsigbar og stille måte.

Forskerne nevner at denne sårbarheten har blitt utnyttet med hell i ledende distribusjoner som Ubuntu, Amazon Linux, RHEL og SUSE, noe som bekrefter at ethvert system som kjører en kjerne senere enn versjon 4.14 og hold følge Aktivering av støtte for AF_ALG-sockets er potensielt sårbart til dette angrepet.

Operasjoner på stedet og sidebufferoverflyt

Angående kjennelsen nevnes det at dette Det stammer fra en optimalisering introdusert i 2017 i kjernens kryptografiske API (AF_ALG). Denne modifikasjonen Jeg var ute etter å eliminere unødvendig bufring. utføre autentiserte krypteringsoperasjoner (AEAD) direkte i samme minneplass, som er kjent som "in-place"-operasjoner.

El Et kritisk problem oppstår når man kombinerer denne optimaliseringen med splice()-funksjonen, Denne metoden overfører data mellom filbeskrivelser ved å overføre direkte referanser til kjernesidens hurtigbuffer i stedet for å fysisk kopiere dataene. Ved forespørsel om dekryptering ble minnestrukturen konfigurert slik at målbufferen, som skulle være et midlertidig område for brukeren, endte opp med å være direkte koblet til hurtigbuffersidene som inneholder systemfildataene.

Autentisering og skriving utenfor minnegrensene

El Den endelige utløseren av sårbarheten ligger i den unormale oppførselen til authencesn-algoritmen. I motsetning til andre kryptografiske rutiner som strengt respekterer grensene til destinasjonsbufferne sine, Denne spesifikke algoritmen bruker brukerens minneplass som et midlertidig arbeidsområde (kladdeblokk) for å omorganisere bytesekvenser under beregning av autentiseringstagger.

I denne prosessen skriver algoritmen fire byte utover den etablerte grensen for utdataområdet. På grunn av optimalisering på stedet og referansekjeden som opprettes av splice(),Denne tilsynelatende harmløse skrivingen krysser grensen for brukerens hukommelse. og lander direkte på kjernebuffersiden som er tilknyttet filen som behandles.

Denne kjeden av logiske feil Det gir angriperen muligheten til vilkårlig å overskrive fire byte i bestemte hurtigbufferposisjoner. antall sider for enhver fil den kan lese. Ved å sende en serie beregnede forespørsler, en angriper kan injisere ondsinnet kode i minneversjonen av kritiske kjørbare filer med suid-biten satt, for eksempel brukerbytterverktøyet.

Siden alle leseoperasjoner først spør i sidens hurtigbuffer, vil neste gang det legitime verktøyet kalles, Systemet vil kjøre den injiserte koden fra minnet, og gi umiddelbare root-rettigheter. uten å endre den fysiske filen på harddisken. Enda mer alarmerende er det at fordi containerisolering deler den underliggende vertens sidebuffer, fungerer denne sårbarheten som en direkte inngangsport for å unnslippe virtualiserte miljøer som Kubernetes-klynger og kompromittere den primære noden.

Nødoppdateringer og avbøtende løsninger

Gitt alvoret i denne kjennelsen, Vedlikeholdsteam har distribuert nødoppdateringer, hvor den endelige løsningen ligger i Tilbakestill optimaliseringen på stedet i algif_aead.c-filen, og separer kilde- og målminnelistene strengt. for å forhindre at hurtigbufrede sider havner i skrivbare stier.

Disse oppdateringene er allerede integrert i kjernene 6.18.22, 6.19.12 og 7.0, og blir tilbakeført til de langsiktige støttegrenene. For administratorer som ikke umiddelbart kan starte eller oppdatere serverne sine, anbefales det å deaktivere kjernemodulen algif_aead hvis den ble kompilert eksternt, eller å begrense opprettelsen av AF_ALG-sockets sterkt ved hjelp av sikkerhetspolicyer som SELinux, et skjold som for eksempel har holdt nåværende Android-enheter trygge mot denne trusselen.

Til slutt, hvis du er interessert i å lære mer, kan du finne detaljene på følgende lenke.


Legg til som foretrukket kilde i Google