- 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ı
- 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ım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| mtrudel bandit | ≥ 0.5.1, < 1.14.0 | 1.14.0 |
Kaynaklar7 kaynak
- CVE.org kaydı
- NVD kaydı
- github.com/…bandit/security/advisories/GHSA-2v5v-8f9v-xh85 Üretici bülteni
- github.com/…ommit/220b9dfd27f9a21305be2afc75cbe585ddc24e7a Yama
- cna.erlef.org/cves/CVE-2026-110314.html Diğer
- osv.dev/vulnerability/EEF-CVE-2026-110314 Diğer
- github.com/…ommit/bb407f2277dcb65a58dd8cc07913a0b58a80e266 Diğer
Kayıt geçmişi
- 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.