Linuxi turvalisus seisab silmitsi uue väljakutsega pärast haavatavuse CVE-2026-31431 avastamist , millele Xint Code'i teadlased on andnud nimeks "kopeerimise ebaõnnestumine". See disainiprobleem pole kaugeltki teoreetiline viga, vaid võimaldab privileegideta kohalikul kasutajal oma õigusi laiendada ja saada täieliku superkasutaja juurdepääsu etteaimatavalt ja vaikselt.
Teadlased mainivad, et seda viga on edukalt ära kasutatud juhtivates distributsioonides nagu Ubuntu, Amazon Linux, RHEL ja SUSE, mis kinnitab, et iga süsteem, mis töötab kerneliga, mis on uuem kui versioon 4.14 ja millel on AF_ALG sokli tugi lubatud, on selle rünnaku suhtes potentsiaalselt haavatav .
Kohapealsed toimingud ja lehe vahemälu ületäitumine
Haavatavuse kohta mainitakse, et see pärineb 2017. aastal kerneli krüptograafilise API (AF_ALG) sees kasutusele võetud optimeerimisest. Selle muudatuse eesmärk oli kõrvaldada ebavajalik puhverdamine, teostades autentitud krüpteerimistoiminguid (AEAD) otse samas mäluruumis, mida tuntakse kohapealsete toimingutena.
Kriitiline probleem tekib selle optimeerimise kombineerimisel splice() funktsiooniga, mis edastab andmeid failideskriptorite vahel, edastades otseseid viiteid kerneli lehe vahemällu, selle asemel et andmeid füüsiliselt kopeerida. Dekrüpteerimise taotlemisel konfigureeriti mälustruktuur nii, et sihtkoha puhver, mis peaks olema kasutaja ajutine ruum, oli lõpuks otse lingitud vahemälu lehtedega, mis sisaldasid süsteemifailide andmeid.
Autentimine ja kirjutamine väljaspool mälu piire
Haavatavuse peamine käivitaja peitub autentimisalgoritmi anomaalses käitumises. Erinevalt teistest krüptograafilistest rutiinidest, mis rangelt austavad oma sihtpuhvrite piire, kasutab see konkreetne algoritm kasutajamälu ajutise tööruumina (märkmepaanina), et autentimissiltide arvutamise ajal baitide järjestusi ümber korraldada.
Selle protsessi käigus kirjutab algoritm väljundpiirkonna jaoks neli baiti kehtestatud piirist kaugemale. Tänu kohapealsele optimeerimisele ja splice() loodud viiteahelale ületab see pealtnäha kahjutu kirjutustoiming kasutaja mälu piiri ja maandub otse töödeldava failiga seotud kerneli vahemälu lehele.
See loogikavigade ahel annab ründajale võimaluse kirjutada suvaliselt üle neli baiti lehe vahemälu kindlates positsioonides mis tahes faili puhul, mida nad saavad lugeda. Arvutatud päringute seeria saatmisega saab ründaja süstida pahatahtlikku koodi kriitiliste käivitatavate failide mälusisesesse versiooni, mille suid-bitt on määratud, näiteks kasutaja vahetaja tööriista abil.
Kuna kõik lugemisoperatsioonid pärivad esmalt lehe vahemälu, siis järgmisel korral, kui legitiimne utiliit käivitatakse, käivitab süsteem sisestatud koodi mälust, andes koheselt juurõigused ilma kõvakettal olevat füüsilist faili muutmata. Veelgi murettekitavam on see, et kuna konteineri isolatsioon jagab alusmasina lehe vahemälu, toimib see haavatavus otsese väravana virtualiseeritud keskkondadest, nagu Kubernetes klastrid, pääsemiseks ja primaarsõlme ohtu seadmiseks.
Hädaolukorra parandused ja leevenduslahendused
Arvestades selle vea tõsidust, on hooldusmeeskonnad välja andnud erakorralised värskendused, mille lõplik lahendus seisneb algif_aead.c failis oleva kohapealse optimeerimise tagasipööramises, eraldades rangelt lähte- ja sihtmälu loendid, et vältida vahemälu lehtede sattumist kirjutatavatesse radadesse.
Need parandused on juba integreeritud kernelitesse 6.18.22, 6.19.12 ja 7.0 ning need porditakse tagasi pikaajalise toe harudesse. Administraatoritel, kes ei saa oma servereid kohe taaskäivitada ega värskendada, on soovitatav keelata algif_aead kerneli moodul, kui see kompileeriti väliselt, või piirata oluliselt AF_ALG soklite loomist turvapoliitikate, näiteks SELinuxi abil, mis on kilp, mis on näiteks praeguseid Androidi seadmeid selle ohu eest kaitsnud.
Lõpuks, kui olete huvitatud lisateabest, leiate üksikasjad järgmiselt lingilt.