CVE-2025-61765
Unknown Unknown - Not Provided
BaseFortify

Publication date: 2025-10-06

Last updated on: 2025-10-22

Assigner: GitHub, Inc.

Description
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-10-06
Last Modified
2025-10-22
Generated
2026-05-07
AI Q&A
2025-10-06
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 3 associated CPEs
Vendor Product Version / Range
miguelgrinberg python-socketio 0.8.0
miguelgrinberg python-socketio *
miguelgrinberg python-socketio 5.14.0
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-502 The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

CVE-2025-61765 is a remote code execution vulnerability in the python-socketio package versions prior to 5.14.0. It affects multi-server deployments where Socket.IO servers use a message queue backend like Redis for inter-server communication. These servers serialize messages using Python's insecure pickle module. If an attacker gains access to the message queue, they can send a maliciously crafted pickle payload that executes arbitrary Python code during deserialization, exploiting Python's __reduce__ method. This allows the attacker to run code with the privileges of the Socket.IO server process. Single-server setups without message queues or multi-server setups with secure message queues are not vulnerable. The vulnerability was fixed by replacing pickle serialization with safer JSON encoding in version 5.14.0. [1, 2]


How can this vulnerability impact me? :

If exploited, this vulnerability allows an attacker who has previously compromised the message queue to execute arbitrary Python code on the Socket.IO server with the server's privileges. This can lead to full compromise of the server's confidentiality, integrity, and availability. The attacker could potentially manipulate data, disrupt services, or gain further access to the system. The severity is moderate with a CVSS score of 6.4. [1]


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability can be detected by checking if your python-socketio deployment is using a message queue backend (such as Redis) for inter-server communication and if the python-socketio version is prior to 5.14.0. Additionally, detection involves verifying if the message queue has been compromised or accessed by unauthorized users. Since the vulnerability involves deserialization of pickle data from the message queue, monitoring or inspecting message queue traffic for suspicious or unexpected pickle payloads could help. Specific commands are not provided in the resources, but you can check the python-socketio version with `pip show python-socketio` and inspect your message queue access logs or use message queue client commands (e.g., `redis-cli MONITOR` for Redis) to detect unusual activity. [1, 2]


What immediate steps should I take to mitigate this vulnerability?

Immediate mitigation steps include upgrading python-socketio to version 5.14.0 or newer, which replaces the insecure pickle serialization with safer JSON serialization for inter-server messaging. Additionally, secure the message queue by following standard security practices such as restricting access to the message queue to trusted hosts only, enabling authentication and encryption on the message queue, and ensuring the message queue is not exposed to untrusted networks. These steps prevent attackers from gaining access to the message queue and sending malicious payloads. [1, 2]


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart