Системд байгаа эмзэг байдал нь танд давуу эрхээ нэмэгдүүлэх боломжийг олгоно

Системийн системийн менежер дээр тодорхойлсон эмзэг байдал (CVE-2020-1712), энэ нь DBus автобусаар тусгайлан боловсруулсан хүсэлтийг илгээх замаар кодоо өндөр эрхтэйгээр гүйцэтгэх боломжийг танд олгоно. Туршилтын хувилбар дээр асуудлыг зассан systemd 245-rc1 (Асуудлыг шийдэх засварууд: 1, 2, 3). Түгээлтэд эмзэг байдлыг зассан Ubuntu, Федора, RHEL (RHEL 8-д харагдах боловч RHEL 7-д нөлөөлөхгүй), CentOS и SUSE/openSUSE, гэхдээ энэ мэдээг бичиж байх үед засвар хийгээгүй хэвээр байна Debian и Arch Linux.

Эмзэг байдал нь DBus мессежийг боловсруулах явцад Polkit-д хүсэлтийг асинхроноор гүйцэтгэх үед үүсдэг аль хэдийн суллагдсан санах ойн хэсэгт хандсанаас үүдэлтэй (үнэгүй ашиглах). Зарим DBus интерфэйсүүд нь объектуудыг богино хугацаанд хадгалахын тулд кэш ашигладаг бөгөөд DBus автобус бусад хүсэлтийг боловсруулахад чөлөөтэй болмогц кэшийн оруулгуудыг устгадаг. Хэрэв DBus аргын зохицуулагч bus_verify_polkit_async()-г ашигладаг бол Polkit үйлдлийг дуусгахыг хүлээх шаардлагатай байж магадгүй. Полкит бэлэн болсны дараа зохицуулагчийг дахин дуудаж, санах ойд аль хэдийн тархсан өгөгдөлд ханддаг. Хэрэв Polkit-д хийх хүсэлт хэтэрхий удаж байвал DBus аргын зохицуулагчийг хоёр дахь удаагаа дуудахаас өмнө кэш дэх зүйлсийг цэвэрлэх болно.

Эмзэг байдлыг ашиглах боломжийг олгодог үйлчилгээнүүдийн дунд DBus API org.freedesktop.machine1.Image.Clone-ээр хангадаг systemd-machined нь өгөгдлийг кэшэд түр хадгалах, Полкит руу асинхрон нэвтрэх боломжийг олгодог. Интерфэйс
org.freedesktop.machine1.Image.Clone нь системийн эрхгүй бүх хэрэглэгчид ашиглах боломжтой бөгөөд энэ нь системийн үйлчилгээнд гэмтэл учруулах эсвэл кодыг root хэлбэрээр гүйцэтгэхэд хүргэж болзошгүй (ашиглалтын прототипийг хараахан үзүүлээгүй байна). Эмзэг байдлыг ашиглахыг зөвшөөрсөн код нь байсан нэмсэн systemd-machined 2015 хувилбарт системд 220 (RHEL 7.x нь systemd 219-ийг ашигладаг).

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

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