1. Anasayfa
  2. Linux

Kritik Sudo Zafiyetleri (CVE-2025-32462 & CVE-2025-32463)


Linux sistemlerinin vazgeçilmez bileşenlerinden biri olan Sudo kullanıcıların sınırlı erişim haklarına sahipken belirli sistem komutlarını veya görevleri geçici olarak yükseltilmiş ayrıcalıklarla gerçekleştirmelerine olanak tanır.

Ancak bu güçlü aracın içinde bulunan küçük bir hata, saldırganlara tüm sistemi ele geçirme imkânı sunabilir.

2025 Haziran’ında duyurulan ve Rich Mirch tarafından keşfedilen iki kritik zafiyet CVE-2025-32462 ve CVE-2025-32463 Sudo’nun yıllardır gözden kaçmış bazı mekanizmalarının istismar edilebileceğini ortaya koydu.

Bu makalemde bu zafiyetlerin nasıl çalıştığını hangi koşullarda tetiklenebileceğini ve nasıl giderilebileceğini ayrıntılı biçimde ele alıyoruz.

Sudo’nun İç Yapısına Kısa Bir Bakış

Sudo’nun temel işlevi /etc/sudoers dosyasında tanımlı kurallar doğrultusunda bir kullanıcının belirli komutları hangi koşullarda çalıştırabileceğini denetlemektir.

Sudo:

  • Kullanıcı adı,
  • Komut adı,
  • Argümanlar,
  • Hostname (isteğe bağlı),
  • Çalıştırılacak ortam (örneğin chroot) gibi birçok parametreyi değerlendirir.

Bu denetim sürecinde bir takım özel parametrler (-h, -R, -l, -e) belirli işlevleri yerine getirmek için kullanılır.

Ancak bu parametrelerin bazıları beklenmeyen etkileşimler doğurarak güvenlik açıklarına yol açabilir.

CVE-2025-32462: --host Parametresi ile Yanlış Erişim Denetimi

Açığın Teknik Arka Planı

Bu açık sudo -h <hostname> veya --host=<hostname> parametresinin, sadece sudo -l komutu ile sınırlı olması gerektiği halde diğer modlarda da etkili olabilmesinden kaynaklanır.

Sudo’nun iç işleyişinde runas_setup() fonksiyonu sudoers_policy_main() fonksiyonu çağrılmadan önce çalıştırılır. Bu da user_host değişkeninin -h parametresi ile değiştirilmesine neden olur.

Açığın ortaya çıktığı kod bloğu (sudo 1.9.17):

/* parse host override before sudoers_policy_main() */
if (ISSET(mode, MODE_LIST) && (host = find_longopt("host")) != NULL) {
    user_host = host;
}

Ancak burada yapılan kontrol sadece MODE_LIST için yapılmakta Bu da sudoedit, run command gibi diğer modlarda bu kontrolün eksik kalmasına neden oluyor.

Saldırı Senaryosu

Bir saldırgan /etc/sudoers dosyasındaki hostname tanımlı bir kuralı istismar edebilir. Örneğin:

Host_Alias     TESTHOST = testhost.example.com
User_Alias     ADMINS = attacker
ADMINS TESTHOST = (ALL) NOPASSWD: ALL

Bu tanım “attacker” kullanıcısına yalnızca testhost.example.com üzerinde tüm komutları parola sormadan çalıştırma yetkisi verir. Ancak zafiyet sayesinde saldırgan aşağıdaki komutu çalıştırarak root erişimi elde edebilir.

sudo -h testhost.example.com id

Ve bu, başka bir makineye değil, lokal makinede çalışır!

Güvenlik Açığının Özeti

  • Etkilenen sürümler:
    • Modern: 1.9.0 – 1.9.17
    • Legacy: 1.8.8 – 1.8.32
  • Risk Düzeyi: Orta – Sistem yapılandırmasına bağlı
  • İstismar Koşulu: /etc/sudoers içinde host bazlı kural tanımlanmış olmalı

CVE-2025-32463: --chroot ile NSS Tabanlı Kütüphane Yükleme

Açığın Teknik Arka Planı

Sudo 1.9.14 ile gelen yeni özellik olan --chroot desteği, kullanıcının bir chroot ortamında komut çalıştırmasına olanak tanır. Ancak bu işlem sırasında kritik bir hata yapıldı: chroot() çağrısı, sudoers politikası değerlendirildikten sonra yapılması gerekirken öncesinde gerçekleştirildi.

Bu da şu anlama gelir: Sudo, yeni kök dizin altındaki /etc/nsswitch.conf dosyasını kullanarak kullanıcı kimlik bilgilerini çözümlerken (örn. getpwuid() çağrısı), saldırganın tanımladığı LD_PRELOAD gibi mekanizmalarla yüklenebilen sahte kütüphaneleri çalıştırmasına olanak tanır.

Saldırı Senaryosu

Saldırgan aşağıdaki adımları izleyebilir:

  1. Kendi oluşturduğu chroot dizin ağacını /tmp/fake_root altında hazırlar:
mkdir -p /tmp/fake_root/etc /tmp/fake_root/lib /tmp/fake_root/lib64
echo 'passwd: files' > /tmp/fake_root/etc/nsswitch.conf

2. Zararlı bir libnss_files.so.2 kütüphanesi oluşturur ve lib klasörüne koyar.

3. Ardından aşağıdaki komutu çalıştırarak Sudo’yu bu ortamda çalıştırır:

sudo -R /tmp/fake_root whoami

4. Sudo bu kütüphaneyi yeni root olarak gördüğü /tmp/fake_root/lib/... altından yükler ve saldırganın kodu root haklarıyla çalıştırılmış olur.

Güvenlik Açığının Özeti

  • Etkilenen sürümler:
    • Yalnızca 1.9.14 – 1.9.17
  • Risk Düzeyi: Yüksek (LD_PRELOAD ile tam kontrol)
  • İstismar Koşulu: NSS destekleyen sistemler (Ubuntu, Fedora, macOS Sequoia, vb.)

Hangi Sistemler Etkileniyor?

Dağıtım/DurumEtkilenme Durumu
Ubuntu 22.04 / 24.04
Debian 11/12
Fedora 38+
RHEL/CentOS 8+
Alpine Linux❌ (NSS kullanılmaz)
Arch Linux
macOS 13+ (Sequoia)

Güvenlik Önlemleri

1. Sudo Sürümünü Kontrol Edin

sudo -V | grep "Sudo version"

Güncel olmayan sistemler ivedilikle güncellenmelidir.

2. Güncelleme

Dağıtımınıza göre güncellemeyi uygulayın:

Debian/Ubuntu:

sudo apt update && sudo apt install sudo

RHEL/CentOS/Fedora:

sudo dnf update sudo

Arch:

sudo pacman -Syu sudo

3. Host Bazlı Kuralları Gözden Geçirin

/etc/sudoers dosyasındaki host bazlı tanımlamaları minimumda tutun. Gereksizse kaldırın.

4. --chroot Kullanımını Kısıtlayın

Çok kullanıcılı sistemlerde sudo -R opsiyonunun kullanımını kontrol altına alın. Örneğin:

Defaults !use_chroot

Bu iki zafiyet Sudo gibi temel ve kritik bir güvenlik bileşeninde küçük yapılandırma hatalarının sistem güvenliğini nasıl tehlikeye atabileceğini bir kez daha gösteriyor.

Özellikle chroot kaynaklı zafiyet (CVE-2025-32463) root yetkilerinin tamamen ele geçirilmesiyle sonuçlanabilir ve bu nedenle yüksek önemde değerlendirilmelidir.

Tüm sistem yöneticilerine önerimiz en kısa sürede sudo paketini 1.9.17p1 veya daha güncel sürüme yükseltmeleri sudoers yapılandırmalarını gözden geçirmeleri ve çok kullanıcılı ortamlarda bu tür istismar vektörlerine karşı proaktif denetimler uygulamalarıdır.