„Linux“ saugumas susiduria su dar vienu iššūkiu po to, kai buvo atrasta pažeidžiamumas CVE-2026-31431, pramintas „Kopijavimo klaida“ „Xint Code“ tyrėjų. Ši projektavimo problema toli gražu nėra teorinis trūkumas Tai leidžia vietiniam vartotojui be privilegijų padidinti savo teises ir gauti visišką prieigą. kaip supervartotojas nuspėjamu ir tyliu būdu.
Tyrėjai teigia, kad šiuo pažeidžiamumu buvo sėkmingai pasinaudota tokiose pagrindinėse platinamose sistemose kaip „Ubuntu“, „Amazon Linux“, „RHEL“ ir „SUSE“, o tai patvirtina, kad... bet kurioje sistemoje, kurioje veikia branduolio versija, vėlesnė nei 4.14, ir Laikytis AF_ALG lizdų palaikymo įjungimas yra potencialiai pažeidžiamas į šią ataką.
Operacijos vietoje ir puslapio talpyklos perpildymas
Kalbant apie nutartį, paminėta, kad ši Tai datuojama 2017 m. branduolio kriptografinės API (AF_ALG) optimizavimu. Ši modifikacija Norėjau pašalinti nereikalingą buferizavimą. vykdant autentifikuoto šifravimo (AEAD) operacijas tiesiogiai toje pačioje atminties erdvėje, tai vadinama operacijomis „vietoje“.
El Derinant šią optimizaciją su splice() funkcija, iškyla kritinė problema, Šis metodas perduoda duomenis tarp failų deskriptorių, perkeldamas tiesiogines nuorodas į branduolio puslapio talpyklą, o ne fiziškai kopijuodamas duomenis. Pateikiant užklausą dėl iššifravimo, atminties struktūra buvo sukonfigūruota taip, kad paskirties buferis, kuris turėtų būti laikina vartotojo vieta, galiausiai būtų tiesiogiai susietas su talpyklos puslapiais, kuriuose yra sistemos failų duomenys.
Autentifikavimas ir rašymas už atminties ribų
El Galutinis pažeidžiamumo veiksnys slypi anomaliame autentifikavimo algoritmo elgesyje. Skirtingai nuo kitų kriptografinių procedūrų, kurios griežtai laikosi savo paskirties buferių ribų, Šis konkretus algoritmas naudoja vartotojo atminties erdvę kaip laikiną darbo sritį (pranešimų bloknotas), skirtas baitų sekų pertvarkymui autentifikavimo žymos skaičiavimo metu.
Šio proceso metu algoritmas įrašo keturis baitus už nustatytos išvesties srities ribos. Dėl optimizavimo vietoje ir splice() sukurtos nuorodų grandinės,Šis, atrodytų, nekenksmingas rašymas peržengia vartotojo atminties ribas ir patenka tiesiai į branduolio talpyklos puslapį, susietą su apdorojamu failu.
Ši loginių klaidų grandinė Tai suteikia užpuolikui galimybę savavališkai perrašyti keturis baitus tam tikrose talpyklos pozicijose puslapių bet kuriam failui, kurį jis gali nuskaityti. Siųsdamas apskaičiuotų užklausų seriją, užpuolikas gali įterpti kenkėjišką kodą svarbių vykdomųjų failų atmintyje esančioje versijoje su nustatytu suid bitu, pvz., vartotojo perjungimo įrankyje.
Kadangi visos skaitymo operacijos pirmiausia užklausia puslapio talpyklą, kitą kartą iškvietus teisėtą įrankį, Sistema vykdys įterptą kodą iš atminties, suteikdama akimirksniu root teises. niekada nekeičiant fizinio failo standžiajame diske. Dar labiau nerimą kelia tai, kad konteinerio izoliacija dalijasi pagrindinio kompiuterio puslapio talpykla, todėl ši pažeidžiamumas tarnauja kaip tiesioginis vartai, leidžiantys išvengti virtualizuotų aplinkų, tokių kaip „Kubernetes“ klasteriai, ir pažeisti pagrindinį mazgą.
Avariniai pataisymai ir švelninimo sprendimai
Atsižvelgiant į šio nutarimo rimtumą, Priežiūros komandos išleido avarinius atnaujinimus, kur slypi galutinis sprendimas Grąžinkite optimizavimą vietoje algif_aead.c faile, griežtai atskirdami šaltinio ir paskirties atminties sąrašus. kad talpykloje saugomi puslapiai nepatektų į rašymo kelius.
Šie pataisymai jau integruoti į 6.18.22, 6.19.12 ir 7.0 branduolių versijas ir yra perkeliami į ilgalaikės pagalbos šakas. Administratoriams, kurie negali iš karto paleisti iš naujo arba atnaujinti savo serverių, rekomenduojama išjungti „algif_aead“ branduolio modulį, jei jis buvo kompiliuotas išoriškai, arba griežtai apriboti AF_ALG lizdų kūrimą naudojant tokias saugumo politikas kaip „SELinux“ – skydą, kuris, pavyzdžiui, apsaugojo dabartinius „Android“ įrenginius nuo šios grėsmės.
Galiausiai, jei norite sužinoti daugiau, išsamią informaciją galite rasti šioje nuorodoje.