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

eBPF дэд системд сул тал (CVE-2021-29154) тогтоогдсон бөгөөд энэ нь Линуксийн цөм дотор JIT бүхий тусгай виртуал машинд гүйцэтгэсэн, дэд системүүдийн ажиллагааг хянах, дүн шинжилгээ хийх, урсгалыг удирдах зорилгоор зохицуулагчийг ажиллуулах боломжийг олгодог. локал хэрэглэгч өөрийн кодоо цөмийн түвшинд гүйцэтгэх боломжтой. Асуудал 5.11.12 (хамааруулсан) гарах хүртэл гарч байгаа бөгөөд түгээлтийн (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch) хараахан засч амжаагүй байна. Засварыг нөхөөс хэлбэрээр авах боломжтой.

Эмзэг байдлыг тодорхойлсон судлаачдын үзэж байгаагаар тэд 32 ба 64 битийн x86 системд зориулсан эксплойтийн загварчлалыг боловсруулж чадсан бөгөөд үүнийг эрх мэдэлгүй хэрэглэгч ашиглаж болно. Гэсэн хэдий ч, Red Hat-ийн тэмдэглэснээр асуудлын ноцтой байдал нь eBPF системийн дуудлага хэрэглэгчдэд хандах боломжтой эсэхээс хамаарна. Жишээлбэл, RHEL болон бусад ихэнх Linux түгээлтүүд дээр анхдагч тохиргоонд BPF JIT идэвхжсэн, хэрэглэгч CAP_SYS_ADMIN эрхтэй бол эмзэг байдлыг ашиглаж болно. Үүнийг шийдвэрлэхийн тулд дараах командыг ашиглан BPF JIT-г идэвхгүй болгохыг зөвлөж байна: echo 0 > /proc/sys/net/core/bpf_jit_enable

JIT хөрвүүлэгчийн машины код үүсгэх явцад салбар зааврын офсетийг тооцоолоход алдаа гарснаас болж асуудал үүссэн. Ялангуяа салбар зааврыг үүсгэхдээ оновчлолын үе шатыг дамжсаны дараа офсет өөрчлөгдөж болзошгүйг харгалздаггүй. Энэ алдаа нь хэвийн бус машины кодыг үүсгэж, цөмийн түвшинд гүйцэтгэхэд ашиглаж болно.

Энэ нь саяхан eBPF дэд системийн цорын ганц эмзэг байдал биш гэдгийг тэмдэглэх нь зүйтэй. Гуравдугаар сарын сүүлчээр цөмд (CVE-2020-27170, CVE-2020-27171) өөр хоёр эмзэг байдал илэрсэн нь цөмийн санах ойн агуулгыг тодорхойлох боломжийг олгодог Spectre ангиллын эмзэг байдлаас хамгаалахын тулд eBPF-ийг ашиглах боломжтой болсон. тодорхой үйл ажиллагааг дамын наймаагаар гүйцэтгэх нөхцөлийг бүрдүүлсний үр дүнд . Спектрийн халдлага нь тусгай кодонд тодорхой дараалсан тушаалуудыг шаарддаг бөгөөд энэ нь зааврыг таамаглаж гүйцэтгэхэд хүргэдэг. eBPF-д гүйцэтгэхээр дамжуулсан BPF программуудыг ашиглан ийм зааварчилгааг бий болгох хэд хэдэн аргыг олсон.

CVE-2020-27170-ийн эмзэг байдал нь BPF шалгагч дахь заагчийг өөрчилснөөс үүдэлтэй бөгөөд энэ нь буферийн хил хязгаараас гадуурх хэсэгт хандах таамаглалын үйлдлүүдийг үүсгэдэг. CVE-2020-27171-ийн эмзэг байдал нь заагчтай ажиллах үед бүхэл тоо дутуу гарсан алдаанаас болж буферийн гаднах өгөгдөлд таамаглалаар хандахад хүргэдэг. Эдгээр асуудлуудыг цөмийн хувилбаруудын 5.11.8, 5.10.25, 5.4.107, 4.19.182, 4.14.227 хувилбаруудад аль хэдийн зассан бөгөөд ихэнх Линуксийн түгээлтийн цөмийн шинэчлэлтүүдэд орсон болно. Судлаачид давуу эрхгүй хэрэглэгч цөмийн санах ойноос өгөгдөл гаргаж авах боломжийг олгодог прототипийг бэлтгэсэн байна.

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

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