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
