Varnost Linuxa se po odkritju sooča z novim izzivom. Ranljivost CVE-2026-31431, poimenovana »Kopiranje ni uspelo« raziskovalci pri Xint Code. Ta težava z zasnovo še zdaleč ni teoretična napaka, Lokalnemu uporabniku brez privilegijev omogoča, da poviša svoja dovoljenja in pridobi poln dostop. kot superuporabnik na predvidljiv in tih način.
Raziskovalci omenjajo, da je bila ta ranljivost uspešno izkoriščena v vodilnih distribucijah, kot so Ubuntu, Amazon Linux, RHEL in SUSE, kar potrjuje, da kateri koli sistem, ki poganja jedro, novejše od različice 4.14, in nadaljevati Omogočanje podpore za vtičnice AF_ALG je potencialno ranljivo na ta napad.
Operacije na mestu in prekoračitev predpomnilnika strani
Glede sodbe je omenjeno, da je to Izvira iz optimizacije, uvedene leta 2017 znotraj kriptografskega API-ja jedra (AF_ALG). Ta sprememba Želel sem odpraviti nepotrebno medpomnjenje. izvajanje operacij overjenega šifriranja (AEAD) neposredno v istem pomnilniškem prostoru, kar je znano kot operacije "na mestu".
El Pri kombiniranju te optimizacije s funkcijo splice() se pojavi kritična težava, Ta metoda prenaša podatke med deskriptorji datotek tako, da namesto fizičnega kopiranja podatkov prenese neposredne reference na predpomnilnik strani jedra. Pri zahtevi za dešifriranje je bila struktura pomnilnika konfigurirana tako, da je bil ciljni medpomnilnik, ki bi moral biti začasni prostor za uporabnika, na koncu neposredno povezan s stranmi predpomnilnika, ki vsebujejo podatke sistemskih datotek.
Avtentikacija in pisanje zunaj meja pomnilnika
El Končni sprožilec ranljivosti se skriva v anomalnem vedenju algoritma za preverjanje pristnosti. Za razliko od drugih kriptografskih rutin, ki strogo spoštujejo meje svojih ciljnih medpomnilnikov, Ta specifičen algoritem uporablja uporabnikov pomnilniški prostor kot začasno delovno območje. (beležnica) za prerazporeditev zaporedij bajtov med izračunom oznake za preverjanje pristnosti.
V tem procesu algoritem zapiše štiri bajte preko določene omejitve za izhodno območje. Zaradi optimizacije na mestu in referenčne verige, ki jo ustvari splice(),Ta na videz neškodljiva pisava prestopa meje uporabnikovega spomina. in pristane neposredno na strani predpomnilnika jedra, ki je povezana z datoteko, ki se obdeluje.
Ta veriga logičnih napak Napadalcu omogoča, da poljubno prepiše štiri bajte na določenih mestih v predpomnilniku. strani za katero koli datoteko, ki jo lahko prebere. Z zaporedjem izračunanih zahtev, napadalec lahko vbrizga zlonamerno kodo v pomnilniški različici kritičnih izvedljivih datotek z nastavljenim bitom suid, kot je orodje za preklop uporabnikov.
Ker vse operacije branja najprej poizvedujejo v predpomnilnik strani, bo naslednjič, ko se zažene legitimni pripomoček, Sistem bo izvedel vbrizgano kodo iz pomnilnika in takoj podelil root privilegije. ne da bi pri tem kdajkoli spremenili fizično datoteko na trdem disku. Še bolj zaskrbljujoče je, da ker izolacija vsebnika deli predpomnilnik strani osnovnega gostitelja, ta ranljivost služi kot neposredna prehodna pot za pobeg iz virtualiziranih okolij, kot so grozdi Kubernetes, in ogrožanje primarnega vozlišča.
Nujne popravke in rešitve za ublažitev
Glede na resnost te sodbe, Vzdrževalne ekipe so namestile posodobitve v sili, kje se skriva dokončna rešitev Razveljavite optimizacijo na mestu znotraj datoteke algif_aead.c, pri čemer strogo ločite izvorni in ciljni seznam pomnilnika da preprečite, da bi predpomnjene strani končale v poteh, v katere je mogoče pisati.
Ti popravki so že integrirani v jedra 6.18.22, 6.19.12 in 7.0 ter se prenašajo nazaj v veje dolgoročne podpore. Za skrbnike, ki ne morejo takoj znova zagnati ali posodobiti svojih strežnikov, je priporočljivo, da onemogočijo modul jedra algif_aead, če je bil preveden od zunaj, ali da močno omejijo ustvarjanje vtičnic AF_ALG z uporabo varnostnih pravilnikov, kot je SELinux, ščit, ki je na primer obstoječe naprave Android zaščitil pred to grožnjo.
Nenazadnje, če vas zanima več informacij, lahko podrobnosti najdete na naslednji povezavi.