id: PYSEC-2026-1854 published: "2026-07-07T16:03:06.734448Z" modified: "2026-07-07T17:25:14.820810Z" aliases: - CVE-2025-61765 - GHSA-g8c6-8fjj-2r4m summary: python-socketio vulnerable to arbitrary Python code execution (RCE) through malicious pickle deserialization in certain multi-server deployments details: "### Summary\nA 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.\n\n### Details\nWhen 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.\n\nThe 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.\n\n### Impact\nThis 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. \n\nSingle-server systems that do not use a message queue, and multi-server systems with a secure message queue are not vulnerable.\n\n### Remediation\nIn 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." affected: - package: name: python-socketio ecosystem: PyPI purl: pkg:pypi/python-socketio ranges: - type: ECOSYSTEM events: - introduced: 0.8.0 - fixed: 5.14.0 versions: - 0.8.0 - 0.8.1 - 0.8.2 - 0.9.0 - 0.9.1 - 0.9.2 - "1.0" - "1.1" - "1.2" - "1.3" - "1.4" - 1.4.1 - 1.4.2 - 1.4.3 - 1.4.4 - 1.5.0 - 1.5.1 - 1.6.0 - 1.6.1 - 1.6.2 - 1.6.3 - 1.7.0 - 1.7.1 - 1.7.2 - 1.7.3 - 1.7.4 - 1.7.5 - 1.7.6 - 1.7.7 - 1.8.0 - 1.8.1 - 1.8.2 - 1.8.3 - 1.8.4 - 1.9.0 - 2.0.0 - 2.1.0 - 2.1.1 - 2.1.2 - 3.0.0 - 3.0.1 - 3.1.0 - 3.1.1 - 3.1.2 - 4.0.0 - 4.0.1 - 4.0.2 - 4.0.3 - 4.1.0 - 4.2.0 - 4.2.1 - 4.3.0 - 4.3.1 - 4.4.0 - 4.5.0 - 4.5.1 - 4.6.0 - 4.6.1 - 5.0.0 - 5.0.1 - 5.0.2 - 5.0.3 - 5.0.4 - 5.1.0 - 5.10.0 - 5.11.0 - 5.11.1 - 5.11.2 - 5.11.3 - 5.11.4 - 5.12.0 - 5.12.1 - 5.13.0 - 5.2.0 - 5.2.1 - 5.3.0 - 5.4.0 - 5.4.1 - 5.5.0 - 5.5.1 - 5.5.2 - 5.6.0 - 5.7.0 - 5.7.1 - 5.7.2 - 5.8.0 - 5.9.0 references: - type: WEB url: https://github.com/miguelgrinberg/python-socketio/security/advisories/GHSA-g8c6-8fjj-2r4m - type: ADVISORY url: https://nvd.nist.gov/vuln/detail/CVE-2025-61765 - type: WEB url: https://github.com/miguelgrinberg/python-socketio/commit/53f6be094257ed81476b0e212c8cddd6d06ca39a - type: PACKAGE url: https://github.com/miguelgrinberg/python-socketio - type: WEB url: https://www.bluerock.io/post/cve-2025-61765-bluerock-discovers-critical-rce-in-socket-io-ecosystem - type: PACKAGE url: https://pypi.org/project/python-socketio - type: ADVISORY url: https://github.com/advisories/GHSA-g8c6-8fjj-2r4m severity: - type: CVSS_V3 score: CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:L