Atklāta kļūda Linux atkritumu savācējā, kas varētu izraisīt privilēģiju eskalāciju 

systemd ievainojamība

Pirms dažām dienām Jans Horns no Google Project Zero komandas, kurš iepriekš identificēja Spectre un Meltdown ievainojamības, atklāja ievainojamības izmantošanas paņēmienu atrasts Linux kodola atkritumu savācējā (CVE-2021-4083).

Neaizsargātība izraisa sacensību stāvoklis kad tiek notīrīti unix ligzdas failu deskriptori un, iespējams, ļauj nepievilinātam vietējam lietotājam izpildīt jūsu kodu kodola līmenī.

Problēma ir interesanti, jo laika logs kura laikā notiek sacensību stāvoklis tika novērtēts kā pārāk mazs radīt reālas ievainojamības, taču pētījuma autors parādīja, ka pat sākotnēji skeptiskas ievainojamības var kļūt par reālu uzbrukumu avotu, ja ievainojamības radītājam ir nepieciešamās prasmes un laiks.

Jans Horns parādīja, kā ar filigrānu manipulāciju palīdzību iespējams stāvokli mazināt Sacensību notikums, kas notiek, vienlaikus izsaucot funkcijas close() un fget() uz pilnībā izmantotu lietošanas pēc-free ievainojamību un iegūstot piekļuvi jau atbrīvotai datu struktūrai kodolā.

Rodas sacensību stāvoklis faila deskriptora aizvēršanas procesa laikā vienlaikus izsaucot funkcijas close () un fget (). Izsaukumu aizvērt() var izpildīt pirms fget() izpildes, kas sajauks vienumu savācēju neizmantots, jo, pēc pārskaitīšanas, faila struktūrai nebūs ārēju atsauču, bet tā paliks piesaistīta faila deskriptoram, t.i., atkritumu savācējs pieņems, ka tam ir ekskluzīva pieeja struktūrai, bet faktiski uz īsu laiku, atlikušais ieraksts faila deskriptoru tabulā turpinās norādīt, ka struktūra tiek atbrīvota.

Lai palielinātu varbūtību ieejot sacensību stāvoklī, tika izmantoti vairāki triki, kas ļāva palielināt veiksmes iespējamību no līdzdalības ar 30% veicot konkrētas sistēmas optimizācijas. Piemēram, lai palielinātu piekļuves laiku struktūrai ar failu deskriptoriem par vairākiem simtiem nanosekunžu, dati tika izskaloti no procesora kešatmiņas, piesārņojot kešatmiņu ar darbību citā CPU kodolā, kas ļāva atgriezt struktūru no atmiņas un nevis CPU ātrā kešatmiņa.

Otra svarīga iezīme bija aparatūras taimera radīto pārtraukumu izmantošana lai palielinātu sacensību laiku. Laiks tika izvēlēts tā, lai pārtraukumu apstrādātājs sacīkšu stāvokļa iestāšanās laikā izšautu un uz laiku pārtrauktu koda izpildi. Lai vēl vairāk aizkavētu kontroles atgriešanu, epoll rindā ģenerēja aptuveni 50 tūkstošus ierakstu, kam bija nepieciešama iterācija pārtraukumu apstrādātājā.

Metode ievainojamības izmantošana tika atklāts pēc 90 dienu neizpaušanas perioda. Problēma

un tas tika labots decembra sākumā. Labojums tika iekļauts 5.16 kodolā, kā arī pārvietots uz kodola LTS atzariem un pakotnēm ar kodolu, kas tika piegādāts izplatījumos. Jāatzīmē, ka ievainojamība tika identificēta, analizējot līdzīgu problēmu CVE-2021-0920, kas izpaužas atkritumu savācējā, apstrādājot karogu MSG_PEEK.

Vēl viena ievainojamība, kas tika atrasta nesen Linux kodolā tas bija CVE-2022-0742 ka var iztērēt pieejamo atmiņu un attālināti izraisīt pakalpojuma atteikumu nosūtot īpaši izstrādātas icmp6 paketes. Problēma ir saistīta ar atmiņas noplūdi, kas rodas, apstrādājot ICMPv6 ziņojumus ar 130. vai 131. tipu.

Problēma pastāv kopš kodola 5.13, un tā tika novērsta versijās 5.16.13 un 5.15.27. Problēma neietekmēja Debian, SUSE, Ubuntu LTS (18.04, 20.04) un RHEL stabilās filiāles, tā tika novērsta operētājsistēmā Arch Linux.

Beidzot ja jūs interesē uzzināt vairāk par to no piezīmes, varat pārbaudīt sīkāku informāciju šo saiti.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.