Skip to content
OpenAdvisories
Medium · 6.4 Public exploit CVE-2025-61765 EUVD-2025-32096GHSA-g8c6-8fjj-2r4mPYSEC-2026-1854

python-socketio vulnerable to arbitrary Python code execution (RCE) through malicious pickle deserialization in certain multi-server deployments

Published Oct 6, 2025 · Updated Oct 22, 2025 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
miguelgrinberg python-socketio >= 0.8.0, < 5.14.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 python-socketio 5.16.0-1 —
Debian 13 python-socketio No fix yet —
Debian 12 python-socketio No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 python-socketio No fix yet —
Ubuntu 26.04 LTS python-socketio No fix yet —
Ubuntu 25.10 python-socketio No fix yet —
Ubuntu 24.04 LTS python-socketio No fix yet —
Ubuntu 22.04 LTS python-socketio No fix yet —
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS python-socketio No fix yet —
ReleasePackageFixed inAdvisory
SLES 3 python-python-socketio 5.7.2-150600.3.3.1 SUSE-SU-2025:3780-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed python-python-socketio 5.14.1-1.1 openSUSE-SU-2025:15613-1
openSUSE Leap 15.6 python-python-socketio 5.7.2-150600.3.3.1 SUSE-SU-2025:3780-1

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling open-webui +1 0.6.33-r1 —
Wolfi rolling reflex 0.8.14-r0 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI python-socketio >= 0.8.0, < 5.14.0 5.14.0 GHSA-g8c6-8fjj-2r4m

Advisories 2

References