NĂ« menaxherin e sistemit systemd â keyfiyyÉt idarÉçiliyi), e cila potencialisht lejon ekzekutimin e kodit me privilegje tĂ« rritura pĂ«rmes dĂ«rgimit tĂ« njĂ« kĂ«rkese tĂ« formatuar posaçërisht nĂ« bus DBus. Problemi Ă«shtĂ« rregulluar nĂ« versionin testues (patch-et qĂ« zgjidhin problemin: , , ). Vulnerabiliteti Ă«shtĂ« eliminuar nĂ« distribucione , , (shfaqet nĂ« RHEL 8, por nuk prek RHEL 7), , dhe , por nĂ« momentin e shkruhjes sĂ« lajmit mbetet e pa rregulluar nĂ« dhe .
Vulnerabiliteti shkaktohet nga qasja në një zonë memorjeje të liruar tashmë (use-after-free), e cila ndodh gjatë ekzekutimit asinkron të kërkesave ndaj Polkit gjatë përpunimit të mesazheve DBus. Disa ndërfaqe DBus përdorin cache për ruajtjen e objekteve për një kohë të shkurtër dhe pastron elementet nga cache sapo bus DBus lirohet për të përpunuar kërkesa të tjera. Nëse menaxhuesi i metodës DBus përdor bus_verify_polkit_async(), ndoshta do t'i duhet të presë përfundimin e veprimit në Polkit. Pas gatishmërisë së Polkit, menaxhuesi thirret përsëri dhe qaset në të dhënat e alokuara më parë në memorje. Nëse kërkesa ndaj Polkit zgjat shumë, atëherë elementet në cache do të pastrohen para se menaxhuesi i metodës DBus të thirret për herë të dytë.
Nga shërbimet që mund të shfrytëzojnë vulnerabilitetin, theksohet systemd-machined, i cili ofron API DBus org.freedesktop.machine1.Image.Clone, që çon në ruajtjen e përkohshme të të dhënave në cache dhe qasjen asinkrone ndaj Polkit. Ndërfaqja
org.freedesktop.machine1.Image.Clone është e aksesueshme nga të gjithë përdoruesit e pandërprerë të sistemit, të cilët mund të nisin dështimin e shërbimeve systemd ose potencialisht të arrijnë ekzekutimin e kodit me të drejtat e root (prototipi i shfrytëzuesit ende nuk është demonstruar). Kodi që lejon shfrytëzimin e vulnerabilitetit ishte në systemd-machined në vitin 2015 në versionin (në RHEL 7.x përdoret systemd 219).
Burimi: opennet.ru
