Линуксийн цөмийн түвшинд код гүйцэтгэх боломжийг олгодог eBPF дэд системийн эмзэг байдал

eBPF дэд системд хоёр шинэ цоорхой илэрсэн бөгөөд энэ нь Linux цөм доторх зохицуулагчийг JIT бүхий тусгай виртуал машинд ажиллуулах боломжийг олгодог. Энэ хоёр эмзэг байдал нь тусгаарлагдсан eBPF виртуал машинаас гадуур өөрийн кодоо цөмийн эрхээр ажиллуулах боломжтой болгодог. Асуудлын талаарх мэдээллийг Pwn2Own тэмцээнийг зохион байгуулдаг Zero Day Initiative баг нийтэлсэн бөгөөд энэ үеэр Ubuntu Linux-д гурван удаа халдлага үйлдэж, урьд өмнө мэдэгдээгүй сул талуудыг ашигласан (eBPF-ийн эмзэг байдал эдгээр халдлагуудтай холбоотой эсэхийг мэдээлээгүй) .

  • CVE-2021-3490 - Энэ эмзэг байдал нь eBPF ALU32 дээр битийн AND, OR, болон XOR үйлдлүүдийг гүйцэтгэх үед 32 битийн хязгаараас гадуурх шалгалт байхгүйгээс үүсдэг. Халдагчид энэ алдааны давуу талыг ашиглан хуваарилагдсан буферийн хязгаараас гадуур өгөгдлийг уншиж, бичиж болно. XOR үйлдлийн асуудал нь цөмийн 5.7-rc1 хувилбар, AND болон OR - 5.10-rc1-ээс эхлэн гарч ирнэ.
  • CVE-2021-3489 - Эмзэг байдал нь цагираган буферийг хэрэгжүүлэх явцад гарсан алдаанаас үүдэлтэй бөгөөд bpf_ringbuf_reserve функц нь хуваарилагдсан санах ойн бүсийн хэмжээ бодит хэмжээнээс бага байж болзошгүйг шалгаагүйтэй холбоотой юм. рингбуфын. Асуудал 5.8-rc1 хувилбараас хойш гарч байна.

Түгээлт дэх эмзэг байдлын нөхөөсийг дараах хуудсуудаас хянах боломжтой: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). Засваруудыг мөн нөхөөс хэлбэрээр авах боломжтой (CVE-2021-3489, CVE-2021-3490). Асуудлыг ашиглах боломжтой эсэх нь eBPF системийн дуудлага хэрэглэгчдэд хандах боломжтой эсэхээс хамаарна. Жишээлбэл, RHEL-ийн анхдагч тохиргоонд эмзэг байдлыг ашиглахын тулд хэрэглэгч CAP_SYS_ADMIN эрхтэй байхыг шаарддаг.

Линуксийн цөмийн өөр нэг эмзэг байдлыг бид тусад нь тэмдэглэж болно - CVE-2021-32606, энэ нь орон нутгийн хэрэглэгчдэд эрхээ үндсэн түвшинд нэмэгдүүлэх боломжийг олгодог. Асуудал нь Linux цөм 5.11-ээс хойш тодорхой болсон бөгөөд isotp_setsockopt() функцэд зохих түгжээг тохируулаагүйн улмаас залгуурын холболтын параметрүүдийг өөрчлөх боломжтой болгодог CAN ISOTP протоколыг хэрэгжүүлэх явцад үүссэн уралдааны нөхцөл байдлаас үүдэлтэй. CAN_ISOTP_SF_BROADCAST тугийг боловсруулах үед.

ISOTP залгуур хаагдсаны дараа хүлээн авагчийн залгуурт холбогдох холболт хүчинтэй хэвээр байх бөгөөд энэ нь холбогдох санах ой суллагдсаны дараа уг үүртэй холбоотой бүтцийг үргэлжлүүлэн ашиглах боломжтой (isotp_sock бүтэц рүү залгасны улмаас үнэгүй ашиглах) isotp_rcv()-г дуудах үед аль хэдийн чөлөөлөгдсөн). Өгөгдлийн засварын тусламжтайгаар та заагчийг sk_error_report() функцэд дарж, цөмийн түвшинд өөрийн кодыг ажиллуулж болно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх