Vulnerabilitetet në nën-sistemin e eBPF, të cilat lejojnë ekzekutimin e kodit në nivelin e bërthamës Linux

Janë zbuluar dy dobësi të reja në nënndërtesën e eBPF, e cila lejon ekzekutimin e trajtuesve brenda bërthamës Linux në një makinë virtuale speciale me JIT. Të dyja dobësitë ofrojnë mundësinë për të ekzekutuar kodin tuaj me të drejtat e bërthamës, jashtë makinës virtuale të izoluara eBPF. Informacioni mbi probleme është publikuar nga ekipi i Zero Day Initiative, i cili organizon garat Pwn2Own, gjatë të cilave këtë vit u demonstruan tre sulme ndaj Ubuntu Linux, të cilat përdorën dobësi të panjohura më parë (nuk është raportuar nëse dobësitë në eBPF lidhen me këto sulme).

  • CVE-2021-3490 — dobĂ«sia shkaktohet nga mungesa e verifikimit tĂ« daljes nga kufijtĂ« e vlerave 32-bit gjatĂ« ekzekutimit tĂ« operacioneve bitore AND, OR dhe XOR nĂ« eBPF ALU32. Sulmuesi mund tĂ« shfrytĂ«zojĂ« kĂ«tĂ« gabim pĂ«r tĂ« lexuar dhe shkruar tĂ« dhĂ«na jashtĂ« kufijve tĂ« tamponit tĂ« caktuar. Problemi me operacionin XOR shfaqet qĂ« nga versioni i bĂ«rthamĂ«s 5.7-rc1, ndĂ«rsa AND dhe OR — qĂ« nga shkarkimi 5.10-rc1.
  • CVE-2021-3489 — dobĂ«sia shkaktohet nga njĂ« gabim nĂ« implementimin e tamponit dhe lidhet me faktin se funksioni bpf_ringbuf_reserve nuk verifikonte mundĂ«sinĂ« qĂ« madhĂ«sia e zonĂ«s sĂ« memorjes tĂ« ishte mĂ« e vogĂ«l se madhĂ«sia reale e tamponit ringbuf. Problemi shfaqet qĂ« nga shkarkimi 5.8-rc1.

Statusi i rregullimeve të dobësive në shpërndarjet mund të ndjeket në këto faqe: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch. Rregullimet janë gjithashtu të disponueshme në formën e patch-eve (CVE-2021-3489, CVE-2021-3490). Mundësia për të shfrytëzuar problemin varet nga disponueshmëria e thirrjes sistemike eBPF për përdoruesin. Për shembull, në konfigurimin e parazgjedhur në RHEL, për të shfrytëzuar dobësinë kërkohet që përdoruesi të ketë të drejtat CAP_SYS_ADMIN.

Veçmas, mund tĂ« pĂ«rmendim njĂ« dobĂ«si tjetĂ«r nĂ« bĂ«rthamĂ«n Linux — CVE-2021-32606, e cila lejon njĂ« pĂ«rdorues lokal tĂ« rrisĂ« privilegjet e tij deri nĂ« nivelin root. Problemi shfaqet qĂ« nga bĂ«rthamĂ«s Linux 5.11 dhe shkaktohet nga njĂ« gjendje garash nĂ« implementimin e protokollit CAN ISOTP, i cili lejon ndryshimin e parametrave tĂ« lidhjes sĂ« soketeve pĂ«r shkak tĂ« mungesĂ«s sĂ« vendosjes sĂ« bllokimeve tĂ« duhura nĂ« funksionin isotp_setsockopt() gjatĂ« trajtimit tĂ« flamurit CAN_ISOTP_SF_BROADCAST.

Pas mbylljes së soketit, ISOTP vazhdon të ruajë lidhjen me soketin e marrësit, i cili mund të vazhdojë të përdorë struktura të lidhura me soketin pas lirimit të memorjes së lidhur me to (use-after-free për shkak të fuqizimit gjatë thirrjes isotp_rcv() në një strukturë isotp_sock që është liruar tashmë). Nëpërmjet manipulimeve me të dhënat, mund të arrihet të mbizotërohet treguesi në funksionin sk_error_report() dhe të ekzekutohet kodi juaj në nivelin e bërthamës.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster