WebSocket frames keep reaching the WebSock after a server-initiated close in Bandit
What fixes it
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from CVE List
Affected versions 2
- banditaffected: 0.5.1 before 1.14.0CVE List
- banditaffected: bb407f2277dcb65a58dd8cc07913a0b58a80e266 before 220b9dfd27f9a21305be2afc75cbe585ddc24e7aCVE List
References 5
- github.com/mtrudel/bandit/commit/bb407f2277dcb65a58dd8cc07913a0b58a80e266Fixvia CVE List
- github.com/mtrudel/bandit/commit/220b9dfd27f9a21305be2afc75cbe585ddc24e7aFixvia CVE List
- github.com/mtrudel/bandit/security/advisories/GHSA-2v5v-8f9v-xh85Advisoryvia CVE List
- cna.erlef.org/cves/CVE-2026-110314.htmlReferencevia CVE List
- osv.dev/vulnerability/EEF-CVE-2026-110314Referencevia CVE List