python-socketio: Binary attachment accumulation can cause denial of service
Impact
The python-socketio server stores binaryEVENT and ACK messages in memory while it waits to receive their binary attachments. Once all the attachments are received, these messages are then processed. An attacker can submit a binary message and intentionally omit sending one or more of its attachments to cause the message along with the partial list of received attachments to stay in memory for a long time.Patches
Version 5.16.2 takes the following measures to address this issue:- Binary packets are only accepted from authenticated clients.
- When a client disconnects, the server checks if there is a partial binary message being held for the client and deletes it.