An attacker can craft malicious WebSocket frames that cause an integer overflow in a variable which tracks the number of bytes remaining. This may cause the server or client to get stuck attempting to read frames in a loop, which can be used as a denial of service vector.
{ "imports": [ { "path": "github.com/gorilla/websocket", "symbols": [ "Conn.Close", "Conn.NextReader", "Conn.NextWriter", "Conn.ReadJSON", "Conn.ReadMessage", "Conn.WriteControl", "Conn.WriteJSON", "Conn.WriteMessage", "Conn.WritePreparedMessage", "Conn.advanceFrame", "Dialer.Dial", "Dialer.DialContext", "NewClient", "NewPreparedMessage", "ReadJSON", "Subprotocols", "Upgrade", "Upgrader.Upgrade", "WriteJSON", "flateReadWrapper.Read", "flateWriteWrapper.Close", "flateWriteWrapper.Write", "httpProxyDialer.Dial", "messageReader.Read", "messageWriter.Close", "messageWriter.ReadFrom", "messageWriter.Write", "messageWriter.WriteString", "netDialerFunc.Dial", "proxy_direct.Dial", "proxy_envOnce.Get", "proxy_socks5.Dial", "truncWriter.Write" ] } ] }