Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • Yama var
  • Son 7 gün
  • CWE-602

CVE-2026-110314

Bandit WebSocket bağlantısında sunucu kapattıktan sonra çerçevelerin WebSock işleyicisine ulaşması

mtrudel bandit

Orta 6,3 CVSS 4.0
Yayımlandı
Güncellendi
26 Eki 2026
Açık yaşı
2 gün
Kaydı açan
EEF

ÖzetTürkçe

mtrudel bandit içindeki WebSocket bağlantı yönetiminde, istemci tarafında uygulanan güvenlik denetimi sorunu nedeniyle uzaktan bir istemci, sunucu bağlantıyı kapattıktan sonra da WebSock işleyici kodunun çalışmaya devam etmesini sağlayabilmektedir. Bu, sunucunun Close çerçevesini yok sayan istemcinin sonradan gönderdiği veri çerçeveleri üzerinden gerçekleşir. Bir WebSock geri çağırımı {:stop, ...} döndürdüğünde, Bandit.WebSocket.Connection terminate/2 fonksiyonunu çağırır, Close gönderir ve yazma tarafını kapatır; ancak bağlantı süreci :closing durumunda çalışmaya devam eder. handle_frame/3 ve handle_info/3 bu durumu hiç kontrol etmediği için, sonraki çerçeveler handle_in/2'ye, sonraki mesajlar ise handle_info/2'ye, durdurma demetindeki durumla birlikte ulaşmaya devam eder. Bu durum, istemci Close göndermeden, TCP bağlantısı kopmadan veya boşta kalma zaman aşımı dolmadan sürer. init/1 içinde başarısız belirteç denetiminden sonra reddedilen bir istemci, yalnızca yöneticilere açık bir işlemi yine de çalıştırabilir. Sorun, 0.5.1 sürümünden 1.14.0 sürümünden önceki bandit sürümlerini etkilemektedir. Satıcının önerdiği geçici çözüm: Bir geri çağırım {:stop, ...} döndürdüğünde WebSock durumunu durdurulmuş olarak işaretlemek ve bu işaret ayarlıyken handle_in/2 ile handle_info/2 fonksiyonlarının işlem yapmadan {:ok, state} döndürmesini sağlamaktır. Düzeltme 1.14.0 sürümünde yapılmıştır.

Kaynaktaki açıklama (İngilizce)

Client-Side Enforcement of Server-Side Security vulnerability in the WebSocket connection handling of mtrudel bandit allows a remote client to keep running WebSock handler code after the server has stopped its connection, via data frames sent after ignoring the server's Close frame.

When a WebSock callback returns {:stop, ...}, Bandit.WebSocket.Connection calls terminate/2, sends Close and shuts down the write side, but keeps the connection process running in a :closing state. handle_frame/3 and handle_info/3 never check that state, so later frames still reach handle_in/2 and later messages reach handle_info/2, with the state from the stop tuple, until the client sends Close, TCP drops or the idle timeout fires. A client refused in init/1 after a failed token check could still run an admin-only action.

This issue affects bandit: from 0.5.1 before 1.14.0.

Üreticinin geçici önlemi (İngilizce)

Mark the WebSock state as stopped whenever a callback returns {:stop, ...}, and have handle_in/2 and handle_info/2 return {:ok, state} without acting while that mark is set.

Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
mtrudel bandit ≥ 0.5.1, < 1.14.0 1.14.0

Kaynaklar7 kaynak

Kayıt geçmişi

  1. Yayımlandı

İlgili açıklar

Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.