CVE-2026-48802 in python-engineioinfo

Summary

by MITRE • 08/11/2026

python-engineio is a Python implementation of the Engine.IO realtime client and server. Prior to version 4.13.2, an attacker can cause the creation of unnecessary background threads in the python-engineio server by exploiting the heartbeat mechanism, which launches a thread when a new connection is received, and when the client sends a PONG packet. This issue primarily affects synchronous servers. Asynchronous servers allocate background tasks instead of physical threads, which are lightweight and less likely to cause denial of service. However, the fix that was implemented was also applied to the asynchronous case. Version 4.13.2 addresses this issue as follows: The initial background thread (or async task( for heartbeat management is only launched if a client passes authentication in the `connect` handler; and the server now ensures that there is only one background heatbeat thread (or async task) per client at a given point in time. Out of sequence PONG packets are now discarded when an active heartbeat thread is already running.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 08/11/2026

The python-engineio library serves as a foundational component for real-time communication in Python applications, implementing the Engine.IO protocol that underpins technologies like socket.io. This vulnerability affects the server-side implementation where the heartbeat mechanism creates background threads to maintain client connections. Prior to version 4.13.2, attackers could exploit this mechanism by establishing multiple connections and sending PONG packets in a specific sequence, leading to excessive thread creation. The flaw stems from inadequate connection lifecycle management within the heartbeat subsystem, where each connection initiation and subsequent PONG packet processing would spawn new threads without proper resource constraints or connection state validation.

The technical implementation of this vulnerability demonstrates poor resource management practices that align with CWE-400 weakness category for excessive resource consumption. When synchronous servers process connections, they create physical threads for each heartbeat operation rather than utilizing lightweight async tasks. This design choice makes the system particularly susceptible to denial of service attacks through thread exhaustion. The vulnerability operates at the protocol level where client-server communication flows are not properly validated before thread allocation occurs. Each new connection triggers thread creation regardless of authentication status, and subsequent PONG packets can cause additional threads to spawn even when existing threads are already managing the same client session.

The operational impact of this vulnerability extends beyond simple resource exhaustion to potentially compromise entire server operations. Attackers can consume system resources rapidly by maintaining multiple connections and sending PONG packets at high frequencies, leading to thread pool exhaustion and eventual service unavailability. This scenario represents a classic denial of service attack vector that affects the availability aspect of the CIA triad. The vulnerability particularly impacts synchronous server implementations where physical threads are expensive resources compared to asynchronous tasks used in modern concurrent programming models.

Security practitioners should note this vulnerability as part of the broader ATT&CK framework's resource exhaustion techniques, specifically targeting system services through thread manipulation and connection flooding. The fix implemented in version 4.13.2 addresses multiple attack vectors by introducing authentication-based thread creation, ensuring single-threaded heartbeat management per client, and implementing proper packet sequencing validation. This remediation strategy follows secure coding principles that prevent unbounded resource allocation and aligns with defensive programming practices for concurrent systems. The solution demonstrates proper access control implementation where thread allocation occurs only after successful authentication and maintains connection state consistency through proper message ordering enforcement.

The mitigation approach adopted by the developers reflects a comprehensive understanding of both synchronous and asynchronous execution models within Python applications. By applying the fix across both server types, they ensure consistent security posture regardless of implementation choice while maintaining performance characteristics for legitimate users. This change prevents the accumulation of orphaned threads that could lead to memory leaks and system instability. The solution also demonstrates proper protocol validation where out-of-sequence messages are discarded rather than processed, preventing potential exploitation through message replay attacks. Organizations should prioritize updating to version 4.13.2 or later to remediate this vulnerability and maintain secure server operations against resource exhaustion threats that could compromise service availability.

Responsible

GitHub M

Reservation

05/22/2026

Disclosure

08/11/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!