Skip to main content

python-socketio CVE-2026-48804

| EUVDEUVD-2026-56894 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-06-26 https://github.com/miguelgrinberg/python-socketio GHSA-5w7q-77mv-v69f PYSEC-2026-3042
7.5
CVSS 3.1 · Vendor: https://github.com/miguelgrinberg/python-socketio
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect to Socket.IO server
  2. Delivery
    Send binary EVENT declaring attachments
  3. Exploit
    Omit one or more attachment frames
  4. Execution
    Server buffers partial message in memory
  5. Persist
    Repeat across many connections
  6. Impact
    Exhaust server memory and crash service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the server accept binary EVENT or ACK messages from the attacker - in vulnerable versions (<= 5.16.1) this path is reachable without authentication, which is why the 5.16.2 fix limits binary packets to authenticated clients. The concrete trigger is sending a binary message that declares N attachments while intentionally omitting one or more attachment frames, leaving the message and received attachments buffered in memory; sustained impact requires many such incomplete messages or connections to accumulate memory. Limiting factors: deployments that already require authentication before accepting events, or that disallow/limit binary payloads, substantially reduce exposure; impact is availability-only (no data exposure), and effectiveness depends on the server's memory headroom and any external connection/size/timeout limits already in place.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) reflects a remotely reachable, low-complexity, availability-only impact with no confidentiality or integrity loss - consistent with a resource-exhaustion DoS rather than data compromise. The fact that the official fix restricts binary packets to authenticated clients implies the vulnerable default path was reachable pre-auth, supporting PR:N. No EPSS score, KEV entry, or POC was supplied, so exploitation probability cannot be quantified from the input; the absence of these signals plus an availability-only impact suggests this is a genuine but moderate-priority hardening fix rather than an emergency. The realistic risk is highest for internet-facing Socket.IO servers that accept binary events from unauthenticated or untrusted clients; servers that already gate connections behind authentication are far less exposed even before patching.

Exploit ScenarioDerived

An attacker connects to an internet-facing python-socketio server and emits a binary EVENT packet declaring multiple attachments but sends only some (or none) of the attachment frames, then opens many such connections and repeats. Each incomplete message and its buffered attachments remain resident in server memory, and with enough concurrent partial messages the worker's memory is exhausted, degrading or crashing the service. No public POC is referenced, but the attack is low-complexity and requires only the ability to speak the Socket.IO protocol.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 26, 2026

Memory-exhaustion denial of service in the python-socketio server (Socket.IO for Python, versions <= 5.16.1) lets remote clients pin server memory by sending binary EVENT or ACK packets while deliberately withholding one or more of the declared binary attachments. Because the server buffers the partial message and its received attachments in memory until all attachments arrive, an attacker can repeatedly open such incomplete messages to grow memory consumption unbounded and exhaust server resources. No public exploit identified at time of analysis; not listed in CISA KEV.

RemediationAI

Upgrade to python-socketio 5.16.2 (Vendor-released patch: 5.16.2), which only accepts binary packets from authenticated clients and deletes any partially received binary message held for a client when that client disconnects; install via pip install --upgrade python-socketio and pin >=5.16.2 in dependency manifests. Where immediate upgrade is not possible, the most effective compensating control is to require authentication before accepting connections or to reject/limit binary EVENT/ACK payloads at the application layer, since the fix itself keys on authentication - trade-off: this breaks legitimate anonymous binary messaging if your app relies on it. Additionally, place the server behind a reverse proxy or WAF that enforces per-connection message-size and rate limits and aggressive idle/connection timeouts to cap how long incomplete messages and their buffers can persist, and monitor process memory to recycle workers under pressure; the trade-off is that overly tight timeouts may drop slow but legitimate clients. See the advisory at https://github.com/miguelgrinberg/python-socketio/security/advisories/GHSA-5w7q-77mv-v69f for details.

Affected VersionsENISA

python-socketio < 5.16.4

Affected Packages

pypi python-socketio fix: 5.16.2, 5.16.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Socket.IO is an event-driven, bidirectional client/server messaging protocol layered over Engine.IO/WebSocket transports; python-socketio is the canonical Python server/client implementation distributed on PyPI as python-socketio. The protocol allows binary payloads to be split across a leading packet that declares how many binary attachments will follow, plus the attachment frames themselves. The vulnerability is a textbook CWE-770 (Allocation of Resources Without Limits or Throttling): the server commits memory to hold the pending EVENT/ACK packet and its accumulating attachment buffers, but applies no cap, timeout, or per-client cleanup on messages whose attachment set never completes, so resources stay allocated indefinitely.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/miguelgrinberg/python-socketio) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Remotely reachable binary path with no auth in vulnerable versions (AV:N/AC:L/PR:N/UI:N), availability-only memory exhaustion (A:H), no confidentiality or integrity impact and no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE HIGH
Red Hat 7.5 HIGH

Primary rating from Vendor (https://github.com/miguelgrinberg/python-socketio).

CVSS VectorVendor: https://github.com/miguelgrinberg/python-socketio

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

Impact

The python-socketio server stores binary EVENT 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.

Executive ViewAI

Why It Matters

python-socketio (Socket.IO for Python) versions 5.16.1 and earlier contain a memory exhaustion vulnerability enabling remote attackers to force unbounded server memory consumption and cause denial of service. Organizations operating affected versions face direct risk of application unavailability and service disruption unless immediate mitigations are deployed.

Business Impact: High
Compensating Controls

Implement per-client connection and message limits with automatic timeout of incomplete binary packet buffers; deploy ingress-level rate limiting targeting binary Socket.IO frames; enable continuous memory monitoring with alerting thresholds for anomalous growth; restrict Socket.IO listener access to trusted client networks via firewall; configure application-level garbage collection tuning and memory pressure handling.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular Python Socket.IO library, common but not in every environment
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 SUSE Linux Enterprise High Performance Computing 15 SP7 SUSE Linux Enterprise Module for Python 3 15 SP7 SUSE Linux Enterprise Server 15 SP7 SUSE Linux Enterprise Server for SAP Applications 15 SP7 Fixed
SUSE Linux Enterprise Server 15 SP6-LTSS Fixed
SUSE Linux Enterprise Server for SAP Applications 15 SP6 Fixed
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy