Deserialization of untrusted data in miguelgrinberg python-socketio
Key facts
- Attack vector
- Adjacent network
- Privileges required
- High
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-502.
Summary
python-socketio is a Python implementation of the Socket.IO realtime client and server. A remote code execution vulnerability in python-socketio versions prior to 5.14.0 allows attackers to execute arbitrary Python code through malicious pickle deserialization in multi-server deployments on which the attacker previously gained access to the message queue that the servers use for internal communications. When Socket.IO servers are configured to use a message queue backend such as Redis for inter-server communication, messages sent between the servers are encoded using the `pickle` Python module. When a server receives one of these messages through the message queue, it assumes it is trusted and immediately deserializes it. The vulnerability stems from deserialization of messages using Python's `pickle.loads()` function. Having previously obtained access to the message queue, the attacker can send a python-socketio server a crafted pickle payload that executes arbitrary code during deserialization via Python's `__reduce__` method. This vulnerability only affects deployments with a compromised message queue. The attack can lead to the attacker executing random code in the context of, and with the privileges of a Socket.IO server process. Single-server systems that do not use a message queue, and multi-server systems with a secure message queue are not vulnerable. In addition to making sure standard security practices are followed in the deployment of the message queue, users of the python-socketio package can upgrade to version 5.14.0 or newer, which remove the `pickle` module and use the much safer JSON encoding for inter-server messaging.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| miguelgrinberg | python-socketio | 0.8.0 to before 5.14.0 | 5.14.0 | Patch available | CNA |
| — | python-socketio (PyPI) | 0.8.0 to before 5.14.0 | 5.14.0 | Patch available | GHSA-g8c6-8fjj-2r4m |
- python-socketio Vendormiguelgrinberg Affected 0.8.0 to before 5.14.0 Fixed in 5.14.0 Patch available CNA
- python-socketio (PyPI) Vendor— Affected 0.8.0 to before 5.14.0 Fixed in 5.14.0 Patch available GHSA-g8c6-8fjj-2r4m
Remediation
- Fix · CNA python-socketio (miguelgrinberg) Fixed in 5.14.0
- Fix · GHSA-g8c6-8fjj-2r4m python-socketio (PyPI) Fixed in 5.14.0 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2025-61765
- 2026-10-03 Alias added: GHSA-g8c6-8fjj-2r4m
References
Other 4
- https://github.com/miguelgrinberg/python-socketio/security/advisories/GHSA-g8c6-8fjj-2r4m
- https://github.com/miguelgrinberg/python-socketio/commit/53f6be094257ed81476b0e212c8cddd6d06ca39a
- https://www.bluerock.io/post/cve-2025-61765-bluerock-discovers-critical-rce-in-socket-io-ecosystem
- https://github.com/miguelgrinberg/python-socketio
More miguelgrinberg vulnerabilities
- TI-2026-36072 python-engineio has unbound thread allocation that can cause denial of service CVSS 3.1HIGH 7.5
- TI-2026-36078 python-engineio has possible denial of service due to maximum payload size sometimes not being enforced CVSS 3.1HIGH 7.5
- TI-2026-36073 python-socketio: Binary attachment accumulation can cause denial of service CVSS 3.1HIGH 7.5
- TI-2026-26780 Flask-HTTPAuth invokes token verification callback when missing or empty token was given by client CVSS 3.1HIGH 8.2
- TI-2026-31080 Microdot: HTTP response splitting in Response.set_cookie() CVSS 3.1LOW 3.7
Sources
- CVE-2025-61765 · CVE Program
- CVE-2025-61765 · NVD
- FIRST EPSS
- GHSA-g8c6-8fjj-2r4m · GitHub Advisory Database · CC BY 4.0
- CVE-2025-61765 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences