eBPF apakÅ”sistēmas ievainojamÄ«bas, kas ļauj izpildÄ«t kodola lÄ«meņa kodu Linux

eBPF apakÅ”sistēmā ir atklātas divas jaunas ievainojamÄ«bas, kas ļauj apstrādātājus izpildÄ«t kodola iekÅ”pusē. Linux Ä«paŔā virtuālajā maŔīnā ar JIT. Abas ievainojamÄ«bas ļauj izpildÄ«t kodu ar kodola privilēģijām ārpus izolētās eBPF virtuālās maŔīnas. Informāciju par problēmām publicēja Zero Day Initiative komanda, kas vada Pwn2Own konkursu, kurā Å”ogad tika demonstrēti trÄ«s uzbrukumi. Ubuntu Linux, kas izmantoja iepriekÅ” nezināmas ievainojamÄ«bas (nav ziņots, vai eBPF ievainojamÄ«bas ir saistÄ«tas ar Å”iem uzbrukumiem).

  • CVE-2021-3490 ir ievainojamÄ«ba, ko izraisa 32 bitu vērtÄ«bu ārpusrobežu pārbaudes trÅ«kums, izpildot bitu UN, OR un XOR operācijas eBPF ALU32. Uzbrucējs var izmantot Å”o kļūdu, lai lasÄ«tu un rakstÄ«tu datus ārpus pieŔķirtā bufera robežām. Problēma ar XOR operācijām pastāv, sākot ar kodola versiju 5.7-rc1, un ar AND un OR operācijām, sākot ar laidienu 5.10-rc1.
  • CVE-2021-3489 — IevainojamÄ«bu izraisa kļūda gredzenveida bufera ievieÅ”anā, un tā ir saistÄ«ta ar to, ka bpf_ringbuf_reserve funkcija nepārbaudÄ«ja iespēju, ka pieŔķirtā atmiņas lielums varētu bÅ«t mazāks par faktisko gredzenveida bufera lielumu. Problēma pastāv kopÅ” 5.8-rc1 laidiena.

IevainojamÄ«bu labojumu statusu izplatÄ«jumos var izsekot Å”ajās lapās: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). Labojumi ir pieejami arÄ« kā ielāpi (CVE-2021-3489, CVE-2021-3490). IevainojamÄ«bas izmantoÅ”ana ir atkarÄ«ga no lietotāja piekļuves eBPF sistēmas izsaukumam. Piemēram, RHEL noklusējuma konfigurācijā ievainojamÄ«bas izmantoÅ”anai ir nepiecieÅ”amas lietotāja CAP_SYS_ADMIN privilēģijas.

AtseviŔķi jāatzÄ«mē vēl viena kodola ievainojamÄ«ba. Linux — CVE-2021-32606, kas ļauj lokālajam lietotājam pieŔķirt root tiesÄ«bas. Problēma izpaužas jau kodolā. Linux 5.11, un to izraisa sacensÄ«bas nosacÄ«jums CAN ISOTP protokola ievieÅ”anā, kas ļauj mainÄ«t ligzdas saistīŔanas parametrus, jo funkcijā isotp_setsockopt() nav iestatÄ«tas atbilstoÅ”as ​​bloķēŔanas, apstrādājot karodziņu CAN_ISOTP_SF_BROADCAST.

Pēc ISOTP ligzdas aizvērÅ”anas saņēmēja ligzdas saistīŔana paliek spēkā, un saņēmējs var turpināt izmantot ar ligzdu saistÄ«tās struktÅ«ras pēc saistÄ«tās atmiņas atbrÄ«voÅ”anas (izmantoÅ”ana pēc atbrÄ«voÅ”anas, jo, izsaucot isotp_rcv() funkciju, tiek piekļūts isotp_sock struktÅ«rai). Manipulējot ar datiem, ir iespējams ignorēt sk_error_report() funkcijas rādÄ«tāju un izpildÄ«t pielāgotu kodu kodola lÄ«menÄ«.

Avots: opennet.ru

Iegādājieties uzticamu mitināŔanu vietnēm ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa vietņu mitināŔanu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster