Хэрэв эдгээр дутагдлыг ашиглавал халдагчид нууц мэдээлэлд зөвшөөрөлгүй хандах эсвэл ерөнхийдөө асуудал үүсгэж болзошгүй.
Хэдхэн хоногийн өмнө ийм мэдээлэл гарсан цөмийн сүлжээний дэд системд илэрсэн эмзэг байдал Линукс санах ойн агуулгыг дарж бичихийг зөвшөөрдөг хэрэглэгчийн орон зай дахь сүлжээний залгууруудыг удирдах замаар цөмийн.
Энэ эмзэг байдал (CVE-2023-42752-д аль хэдийн каталогжсон) гэдгийг дурьдсан. эгзэгтэй гэж ангилдаг Энэ нь таны кодыг цөмийн түвшинд ажиллуулах эрхгүй хэрэглэгчдэд хандахад ашиглагдаж болно.
CVE-2023-42752 эмзэг байдлын талаар
Үүний дагуу алдаа илэрсэн Энэ нь Линуксийн цөмийн 6.2 хувилбарт нэвтрүүлсэн өөрчлөлтөөс үүдэлтэй. гэхдээ энэ өөрчлөлтийг LTS-ийн бүх дэмжигдсэн салбаруудад мөн нэвтрүүлсэн гэж дурдсан тул эмзэг байдал Энэ нь цөмийн дэмжигдсэн тогтвортой салбаруудын хуучин хувилбаруудад бас гарч ирдэг.
Сайн байна уу,
Би саяхан Линуксийн цөмд бүхэл тооны халилттай тулгарсан бөгөөд энэ нь хүргэж байна `skb_shared_info`-г хэрэглэгчийн орон зайд хуваарилж цөмд оруулна `skb_shared_info`-аас SMAP хамгаалалтгүй системд ашиглах боломжтой функцийн заагчуудын лавлагааг агуулдаг.
Би үндсэн салбар хоёуланд нь эмзэг байдал байгаа эсэхийг шалгасан болон v6.1.y, бусад хувилбаруудад нөлөөлж болзошгүй (боломжтой бүх тогтвортой хувилбарууд)
Асуудлын шалтгаануудын тухайд дурьдсан "alloc_skb" функцэд бүхэл тооны халилт үүссэн хэвээр байна Линукс цөмийн хувьд дохио нь сүлжээний пакетуудыг хадгалахад хэрэглэгддэг sk_buff (сокет буфер) бүтцэд санах ойн хуваарилалтыг хангахад ашиглагддаг.
Буферийн хэмжээг тооцоолоход ашигласан хэрэглэгчээс хүлээн авсан параметрүүдийг зохих ёсоор баталгаажуулаагүйгээс халихад хүргэдэг асуудал гардаг тул эмзэг байдлыг ашиглаж болно. Давуу эрхгүй хэрэглэгчийн халдлага нь хэрэглэгчийн нэрийн орон зай үүсгэх хандалтыг шаарддаг. жишээлбэл, тусгаарлагдсан саванд хийж болно.
Кодын дэлгэцийн агшин
Үүнийг дурдсан: `kmalloc_нөөц` функц нь `kmalloc_size_roundup` доторх `PAGE_SIZE << get_order(size);` дотор хэмжээг дугуйлна. 'size' нь 'unsigned int' тул анхны утга нь том бол дугуйлах логик үүнийг 0 болгоно, жишээ нь 0xffffded0 гэх мэт. Үүний үр дүнд "өгөгдөл" нь үнэндээ 0-ын оронд 10x0 болох `ZERO_SIZE_PTR` болж хувирна. Баталгаажуулалт нь тухайн тохиолдлыг авч үзэхгүй тул цөм нь "өгөгдөл"-ийг хүчинтэй цөмд заагч мэт үргэлжлүүлэн боловсруулна.
Дараа нь цөм `__finalize_skb_around` доторх skb объектыг эцэслэхийг оролдох үед энэ нь `shinfo = skb_shinfo(skb);` кодтой байх бөгөөд энэ нь `skb->head+skb->end` энд `skb->head ` нь 0x10 ба `skb->end`
0xffffmed0 шиг том хэмжээтэй. Үүний үр дүнд `shinfo` нь хэрэглэгчийн орон зайн заагчийг заадаг.
Энэ нь эмзэг байдлыг дурдах нь зүйтэй CVE-2023-42752 нь орон нутгийнх бөгөөд алсаас ашиглах боломжгүй сүлжээгээр, учир нь дээр дурдсанчлан халдагчид хэрэглэгчийн нэрийн орон зайг үүсгэх хандалтыг шаарддаг.
2010 онд би хорлонтой хэрэглэгчид dev->mtu-г дурын утгыг тохируулж болно гэдгийг ойлгоогүй. Энэ mtu нь 0x7fffffff-ээр хязгаарлагдаж байгаа боловч dev->mtu хэр том байгаагаас үл хамааран igmpv3_newpack() нь IP_MAX_MTU-аас илүү хуваарилах нь утгагүй бөгөөд олон skb талбарыг халах эрсдэлтэй.
Түр зуурын шийдэл болгон SMAP хамгаалалтын механизмыг идэвхжүүлэхийг зөвлөж байна Асуудлыг блоклодог цөмд (Хяналтын горимд нэвтрэхээс урьдчилан сэргийлэх).
Хувьд нь Асуудлыг шийдэхийн тулд үүнийг аль хэдийн засварласан байна Цөмийн дэмжлэг бүхий янз бүрийн хувилбаруудын эмзэг байдлыг блоклосон засваруудад тараагдсан бөгөөд 5-р сарын XNUMX-нд цөмийн тогтвортой мөчрүүдэд өөрчлөлтүүдийг хүлээн зөвшөөрсөн гэж дурдсан байна.
Эцэст нь, төлөө засварыг хянах сонирхолтой Эмзэг байдлын талаар та үүнийг янз бүрийн түгээлтийн хуудсан дээр хийж болно: Debian, Ubuntu, Gentoo, RHEL,fedora болон SUSE/openSUSE.Та эмзэг байдлын дэлгэрэнгүй мэдээллийг хэсгээс шалгаж болно дараах холбоос.