Isang kahinaan sa Polkit na nagpapahintulot sa iyo na palakihin ang iyong mga pribilehiyo sa system

Natukoy ang isang kahinaan (CVE-2021-3560) sa bahagi ng Polkit, na ginagamit sa mga distribusyon upang payagan ang mga hindi karapat-dapat na user na magsagawa ng mga aksyon na nangangailangan ng mataas na mga karapatan sa pag-access (halimbawa, pag-mount ng USB drive), na nagpapahintulot sa isang lokal na user na makakuha ng root rights sa system. Ang kahinaan ay naayos sa bersyon ng Polkit 0.119.

Ang problema ay naroroon mula noong inilabas ang 0.113, ngunit maraming mga distribusyon, kabilang ang RHEL, Ubuntu, Debian, at SUSE, ay nag-backport ng apektadong pag-andar sa mga pakete batay sa mas lumang mga paglabas ng Polkit (ang mga pag-aayos ng package ay magagamit na sa mga pamamahagi).

Ang problema ay nagpapakita mismo sa polkit_system_bus_name_get_creds_sync() function, na kumukuha ng mga identifier (uid at pid) ng proseso na humihiling ng privilege elevation. Ang isang proseso ay kinilala ng Polkit sa pamamagitan ng pagtatalaga ng isang natatanging pangalan sa DBus, na pagkatapos ay ginagamit upang i-verify ang mga pribilehiyo. Kung madidiskonekta ang isang proseso mula sa dbus-daemon bago magsimula ang handler ng polkit_system_bus_name_get_creds_sync, makakatanggap ang handler ng error code sa halip na isang natatanging pangalan.

Ang kahinaan ay sanhi ng katotohanan na ang ibinalik na error code ay hindi maayos na naproseso at ang polkit_system_bus_name_get_creds_sync() function ay nagbabalik ng TRUE sa halip na FALSE, sa kabila ng hindi nito maitugma ang proseso sa uid/pid at i-verify ang mga hiniling na pribilehiyo para sa proseso. Ang code kung saan tinawag ang polkit_system_bus_name_get_creds_sync() function ay ipinapalagay na ang tseke ay matagumpay at ang kahilingan na palakihin ang mga pribilehiyo ay nagmula sa ugat at hindi mula sa isang walang pribilehiyong user, na ginagawang posible na magsagawa ng mga privileged na aksyon nang walang karagdagang pagpapatunay at pag-verify ng mga kredensyal.

Pinagmulan: opennet.ru

Magdagdag ng komento