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

Полкит бүрэлдэхүүн хэсэг дэх эмзэг байдал (CVE-2021-3560) илэрсэн бөгөөд энэ нь давуу эрхгүй хэрэглэгчдэд өндөр хандалтын эрх шаардсан үйлдлүүдийг (жишээ нь, USB драйв холбох гэх мэт) хийх боломжийг олгох зорилгоор түгээлтэд ашигладаг бөгөөд энэ нь орон нутгийн хэрэглэгчдэд систем дэх үндсэн эрхийг олж авах. Энэ эмзэг байдлыг Polkit-ийн 0.119 хувилбар дээр зассан.

Асуудал 0.113 хувилбар гарснаас хойш байсаар байгаа боловч RHEL, Ubuntu, Debian, SUSE зэрэг олон түгээлтүүд нөлөөлөлд өртсөн функцийг хуучин Polkit хувилбарууд дээр тулгуурлан багц болгон танилцуулсан (багцын засварууд аль хэдийн тархалтад байгаа).

Асуудал нь polkit_system_bus_name_get_creds_sync() функцэд илэрдэг бөгөөд энэ нь эрх мэдлийг нэмэгдүүлэхийг хүссэн процессын танигчийг (uid болон pid) авдаг. Полкит процессыг DBus-д өвөрмөц нэр өгөх замаар тодорхойлж, дараа нь эрхийг баталгаажуулахад ашигладаг. Хэрэв процесс нь polkit_system_bus_name_get_creds_sync зохицуулагч эхлэхийн өмнөхөн dbus-daemon-оос тасарвал зохицуулагч өвөрмөц нэрийн оронд алдааны код хүлээн авна.

Энэ эмзэг байдал нь буцаасан алдааны кодыг зөв боловсруулаагүй, polkit_system_bus_name_get_creds_sync() функц нь процессыг uid/pid-тэй тааруулж, процесст хүссэн эрхүүдийг баталгаажуулах боломжгүй байсан ч ХУДАЛ биш харин ҮНЭНийг буцааснаас үүдэлтэй. Polkit_system_bus_name_get_creds_sync() функцийг дуудсан код нь шалгалт амжилттай болсон бөгөөд эрх олголтыг нэмэгдүүлэх хүсэлт нь эрхгүй хэрэглэгчээс биш root-ээс ирсэн гэж үздэг бөгөөд энэ нь нэмэлт баталгаажуулалт, итгэмжлэлийг баталгаажуулахгүйгээр давуу эрхтэй үйлдлүүдийг хийх боломжтой болгодог.

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

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