CVE-2026-54886
Açıklama
Erlang OTP ssh (ssh_sftpd modülü) içerisindeki Ulaşılamaz Çıkış Koşullu Döngü ('Sonsuz Döngü') zafiyeti, kimliği doğrulanmış bir SFTP kullanıcısının bir SFTP kanalını kalıcı olarak yanıt vermez hale getirmesine olanak tanır. ssh_sftpd içerisindeki handle_data/4 fonksiyonu, herhangi bir türdeki kanal verisini kabul eden genel bir yakalama yan tümcesine sahiptir. Sıfır olmayan bir tür koduyla (SSH_MSG_CHANNEL_EXTENDED_DATA), boş bir bekleyen tamponla ve SFTP paket boyutu sınırında veya altında bir yükle kanal verisi geldiğinde; yan tümce kendisini aynı argümanlarla kuyruk çağrısı (tail-call) yaparak çağırır ve bu durum sonsuz bir döngü oluşturur. SFTP protokolü yalnızca normal kanal verileriyle (tür 0) çalışır. Genişletilmiş veriler (sıfır olmayan türler) SFTP için anlamsızdır ve standartlara uygun istemciler tarafından asla gönderilmez. Ancak SSH protokolü, herhangi bir kanal katılımcısının açık bir kanalda genişletilmiş veri göndermesine izin verir; bu nedenle, kimliği doğrulanmış bir SFTP istemcisi, herhangi bir data_type_code ve boyut sınırının altında veya eşit herhangi bir boş olmayan yük ile SSH_MSG_CHANNEL_EXTENDED_DATA göndererek döngüyü tetikleyebilir. Hedeflenen ssh_sftpd işlemi sonsuz bir kuyruk özyinelemeli (tail-recursive) döngüye girer. Bir daha hiçbir mesajı işlemez, mesaj kuyruğu sınırsızca büyür ve yalnızca işlem sonlandırılarak durdurulabilir. BEAM'in azaltma tabanlı zamanlayıcı önceliklendirmesi (reduction-based scheduler preemption) çalışmaya devam eder, dolayısıyla düğüm üzerindeki diğer işlemler kaynak yetersizliği çekmez ancak takılan her kanal işlemi sürekli olarak tam CPU zaman payını tüketir ve sınırsız mesaj kuyruğu belleği biriktirir. Çok sayıda kanal açmak, CPU ve bellek etkisini artırır. Varsayılan max_channels ayarını (infinity) kullanan Erlang/OTP SSH yapılandırmaları, kimliği doğrulanmış bir kullanıcının bağlantı başına sınırsız kanal açmasına izin vererek, birden fazla TCP bağlantısına veya kimlik doğrulamasına gerek kalmadan saldırıyı şiddetlendirir. Bu sorun aracılığıyla dosya içeriğine, kimlik bilgilerine veya yazma erişimine ulaşılamaz. Etki, hedeflenen SFTP kanallarındaki hizmet reddi (DoS) ile sınırlıdır ve ikincil olarak CPU performans düşüşü ve bellek artışı meydana gelir. Bu zafiyet, lib/ssh/src/ssh_sftpd.erl program dosyası ve ssh_sftpd:handle_data/4 program rutini ile ilişkilidir. Bu sorun, OTP 29.0.3, OTP 28.5.0.3 ve OTP 27.3.4.14 öncesindeki OTP 17.0'dan itibaren sürümleri; buna karşılık gelen ssh 6.0.2, 5.5.2.2 ve 5.2.11.9 öncesindeki 3.0.1 sürümünden itibaren sürümleri etkilemektedir.
Nasıl düzeltilir
- erlang erlang\/otp27.3.4.14, 28.5.0.3, 29.0.3 ya da sonraki bir sürüm
- erlang erlang\/ssh5.2.11.9, 5.5.2.2, 6.0.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| erlang erlang\/otp | 17.0 ≤ v < 27.3.4.14, 28.0 ≤ v < 28.5.0.3, 29.0 ≤ v < 29.0.3 | 27.3.4.14, 28.5.0.3, 29.0.3 |
| erlang erlang\/ssh | 3.0.1 ≤ v < 5.2.11.9, 5.3 ≤ v < 5.5.2.2, 6.0 ≤ v < 6.0.2 | 5.2.11.9, 5.5.2.2, 6.0.2 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.