OpenSSH sunucularında parola doğrulamasını tamamen atlatan bir hata, 5 Kasım’da yayınlanan 10.6p2 sürümüyle kapatıldı. CISA aynı açığı 9 Kasım’da KEV kataloğuna ekledi ve federal kurumlar için yama son tarihini 12 Kasım olarak duyurdu. Açık CVE-2026-123158 koduyla takip ediliyor, NVD’deki CVSS puanı 8.1.
Sorun, sshd’nin parola kontrolünü PAM olmadan yaptığı ve sistemin musl libc kullandığı Linux kurulumlarında ortaya çıkıyor. Bu ikilinin en bilinen örneği Alpine Linux. Saldırgan, parola alanı yıldız (*) olan bir hesabın adını biliyorsa 257 ile 1024 bayt arasındaki herhangi bir parolayla giriş yapabiliyor. Tek deneme yetiyor, tekrar denemek gerekmiyor.
Hata nereden kaynaklanıyor
sshd, PAM olmadan çalışırken parolayı crypt() ile özetleyip saklanan değerle karşılaştırıyor. Hesabın parola alanı çok kısaysa sshd tuzu (salt) başka bir hesaptan ödünç alıyor. musl’un crypt() fonksiyonu ise 256 baytı aşan anahtarlarda hata göstergesi olarak “*” döndürüyor, ki parolası olmayan hesapların alanında tam olarak bu karakter duruyor. İki yıldız eşleşince giriş başarılı sayılıyor. musl bu davranışı 2012’de NULL yerine yıldız dönecek şekilde bilinçli olarak değiştirmişti.
Kimler etkileniyor
Üç koşulun aynı anda geçerli olması gerekiyor: sshd musl ile derlenmiş ve PAM kapalı, PasswordAuthentication açık (OpenSSH’un varsayılanı) ve sistemde parola alanı yıldız olan bir hesap var. Ayrıca en az bir hesapta $5$ veya $6$ ile başlayan gerçek bir parola özeti bulunmalı. Alpine’de root hesabı 3.16’dan beri root:* olarak geliyor; yalnızca anahtarla giriş yapan kullanıcılar, dizin servisi üzerinden gelen hesaplar ve tiny-cloud imajlarındaki alpine kullanıcısı da aynı durumda. Alpine’nin resmi bulut imajlarında (3.18.11 ile 3.24.3 arası) alpine kullanıcısı parolasız doas yetkisine sahip, bu da doğrudan root demek.
Alpine ekibi 3.16’dan 3.24’e kadar tüm sürümler için düzeltilmiş paket yayınladı. musl kullanan OpenWrt, Buildroot ve Yocto tabanlı gömülü sistemler de aynı koşullar sağlandığında riskli. Konteyner içinde sshd çalıştırmayan Docker kullanıcıları, parola ile girişi kapalı olanlar ve PAM’ı açık kullananlar etkilenmiyor.
Nasıl kapatılır
Alpine’de apk upgrade -U -a yeterli; düzeltilmiş paketler 3.21.10, 3.22.8, 3.23.8 ve 3.24.4 sürümlerinde. Paketi güncellemek çalışan sshd’yi değiştirmiyor, sonrasında rc-service sshd restart şart. Hemen güncelleyemeyenler için en hızlı çözüm parola ile girişi kapatmak: /etc/ssh/sshd_config.d/00-no-passwords.conf dosyasına PasswordAuthentication no satırı eklenip sshd yeniden başlatılmalı. Ayrıntılar OpenSSH 10.6p2 sürüm notlarında.
Bulaşma işareti var mı
Alpine’de /var/log/messages içinde “Accepted password” satırı aranmalı. Parolası olmayan bir hesap (alpine, root veya yalnızca anahtarla giriş yapan bir kullanıcı) parola ile giriş yapmış görünüyorsa makineyi ele geçirilmiş kabul edin; yetkisiz anahtarlar, yeni kullanıcılar ve doas kayıtları üzerinden inceleme yapın.
Kaynak: CISA KEV · NVD

Deneyimini paylaş
Bir sorunun, farklı bir çözümün veya eklemek istediğin bir notun var mı? Giriş yapmadan da yazabilirsin.