FreeBSD-ийн ping хэрэгсэл дэх root эмзэг байдлыг алсаас ашигласан

FreeBSD нь үндсэн хуваарилалтад багтсан ping хэрэгсэлд (CVE-2022-23093) сул талтай. Асуудал нь халдагчийн удирддаг гадаад хост руу пинг хийх үед алсын кодыг root болгон ажиллуулахад хүргэж болзошгүй. FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 болон 12.3-RELEASE-p10 шинэчлэлтүүдэд засварыг санал болгосон. Бусад BSD системүүд тодорхойлогдсон эмзэг байдалд өртсөн эсэх нь хараахан тодорхойгүй байна (netBSD, DragonFlyBSD болон OpenBSD хараахан мэдээлээгүй байна).

Эмзэг байдал нь шалгалтын хүсэлтийн хариуд хүлээн авсан ICMP мессежүүдийн задлан шинжлэх код дахь буфер хэт ихэссэнээс үүсдэг. Ping дээр ICMP мессежийг илгээх, хүлээн авах код нь түүхий залгууруудыг ашигладаг бөгөөд өндөр эрхтэйгээр ажилладаг (хэрэгсэл нь setuid root тугтай ирдэг). Түүхий залгуураас хүлээн авсан пакетуудын IP болон ICMP толгой хэсгийг сэргээн засварлах замаар хариултыг ping тал дээр боловсруулдаг. Татаж авсан IP болон ICMP толгойнуудыг pr_pack() функцээр буферт хуулж авдаг бөгөөд IP толгойн дараа багцад нэмэлт өргөтгөсөн толгойнууд байж болно.

Ийм толгойг пакетаас гаргаж аваад толгойн блокт оруулсан боловч буферийн хэмжээг тооцохдоо тооцдоггүй. Хэрэв хост илгээсэн ICMP хүсэлтийн хариуд нэмэлт толгойтой пакет буцаавал тэдгээрийн агуулгыг стек дээрх буферийн хилээс гадуурх хэсэгт бичнэ. Үүний үр дүнд халдагч стек дээрх 40 байт хүртэлх өгөгдлийг дарж бичих боломжтой бөгөөд энэ нь түүний кодыг гүйцэтгэх боломжийг олгодог. Алдаа илрэх үед процесс нь системийн дуудлагыг тусгаарлах (чадварын горим) байдалд байгаа нь системийн бусад хэсэгт нэвтрэхэд хүндрэл учруулдаг тул асуудлын аюулыг багасгадаг. эмзэг байдлыг ашигласны дараа.

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

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