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

eBPF дэд системд сул тал (CVE-2021-4204) тогтоогдсон бөгөөд энэ нь танд JIT-тэй тусгай виртуал машинд Линукс цөм доторх зохицуулагчийг ажиллуулах боломжийг олгодог бөгөөд энэ нь орон нутгийн эрхгүй хэрэглэгчдэд давуу эрхээ нэмэгдүүлэх, кодыг нь ажиллуулах боломжийг олгодог. Линуксийн цөмийн түвшин. Асуудал Linux цөм 5.8-аас хойш гарч ирсэн бөгөөд шийдэгдээгүй хэвээр байна (5.16 хувилбарыг оруулаад). Түгээлтийн асуудлыг засахын тулд үүсгэж буй шинэчлэлтүүдийн статусыг дараах хуудсуудаас хянах боломжтой: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. 18-р сарын XNUMX-нд нийтлэхээр төлөвлөж байгаа ажлын эксплойт үүсгэсэн гэж мэдэгдэв (хэрэглэгч болон хөгжүүлэгчдэд эмзэг байдлыг засах долоо хоногийн хугацаа өгсөн).

Энэ эмзэг байдал нь гүйцэтгэхээр дамжуулсан eBPF программуудыг буруу шалгаснаас үүдэлтэй. eBPF дэд систем нь туслах функцээр хангадаг бөгөөд тэдгээрийн зөв хэрэглээг тусгай шалгагчаар баталгаажуулдаг. Зарим функцууд нь PTR_TO_MEM утгыг аргумент болгон дамжуулахыг шаарддаг бөгөөд буфер халихаас сэргийлэхийн тулд баталгаажуулагч аргументтай холбоотой санах ойн хэмжээг мэддэг байх ёстой. bpf_ringbuf_submit болон bpf_ringbuf_discard функцуудын хувьд шилжүүлсэн санах ойн хэмжээний талаарх өгөгдлийг шалгагч руу мэдээлээгүй бөгөөд энэ нь тусгайлан зохион бүтээсэн eBPF кодыг гүйцэтгэх үед буферийн хязгаараас хэтэрсэн санах ойн хэсгүүдийг дарж бичихэд ашиглаж болно.

Халдлага үйлдэхийн тулд хэрэглэгч өөрийн BPF программыг ачаалах боломжтой байх ёстой бөгөөд сүүлийн үеийн олон Линуксийн түгээлтүүд энэ боломжийг анхдагчаар хаадаг (үүнд 5.16 хувилбараас эхлэн eBPF-д давуу эрхгүй хандахыг цөмд анхдагч байдлаар хориглосон). Жишээлбэл, Ubuntu 20.04 LTS-ийн анхдагч тохиргоонд энэ эмзэг байдлыг ашиглаж болох боловч Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 болон Fedora 33 орчинд администратор тохируулсан тохиолдолд л гарч ирнэ. kernel.unprivileged_bpf_disabled параметрийг 0 болгож тохируулна уу. Эмзэг байдлыг хаахын тулд та "sysctl -w kernel.unprivileged_bpf_disabled=1" командыг ашиглан BPF программыг эрхгүй хэрэглэгчид ажиллуулахаас сэргийлж болно.

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

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