CVE-2026-48802
python-engineio has unbound thread allocation that can cause denial of service
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
python-engineio has unbound thread allocation that can cause denial of service
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.
- Record
CVE-2026-48802- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2026-56859
7.5
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.
- Record
EUVD-2026-56859- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-cgwc-pv48-fhj5
7.5
python-engineio has unbound thread allocation that can cause denial of service
Impact
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.
Note: 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.
Patches
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
connecthandler. - 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.
- Record
GHSA-cgwc-pv48-fhj5- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-48802- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV
7.5
python-engineio has unbound thread allocation that can cause denial of service
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.
- Record
CVE-2026-48802- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-48802
7.5
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.
- Record
DEBIAN-CVE-2026-48802- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 6 moreShow less
OSVGHSA-cgwc-pv48-fhj5
7.5
python-engineio has unbound thread allocation that can cause denial of service
Impact
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.
Note: 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.
Patches
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
connecthandler. - 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.
- Record
GHSA-cgwc-pv48-fhj5- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVPYSEC-2026-3032
7.5
python-engineio has unbound thread allocation that can cause denial of service
Impact
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.
Note: 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.
Patches
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
connecthandler. - 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.
- Record
PYSEC-2026-3032- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-48802
7.5
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.
- Record
UBUNTU-CVE-2026-48802- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21182-1 No score
Security update for python-python-engineio
This update for python-python-engineio fixes the following issues:
Changes in python-python-engineio:
- CVE-2026-48802: remote user can cause the creation of unnecessary background threads in the server through the heartbeat mechanism and cause a DoS (bsc#1269544)
- CVE-2026-48809: size of incoming messages is not checked before they are loaded into memory and allows remote users to cause a DoS via excessive memory allocation (bsc#1269545)
- Record
openSUSE-SU-2026:21182-1- Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-48802 No score
CVE-2026-48802 in rootio-python-engineio - Patched by Root
Root has patched CVE-2026-48802 in the rootio-python-engineio package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-48802- Updated
- 2026-11-02
OSVSUSE-SU-2026:3085-1 No score
Security update for python-python-engineio
This update for python-python-engineio fixes the following issues:
- CVE-2026-48802: remote user can cause the creation of unnecessary background threads in the server through the heartbeat mechanism and cause a DoS (bsc#1269544).
- CVE-2026-48809: size of incoming messages is not checked before they are loaded into memory and allows remote users to cause a DoS via excessive memory allocation (bsc#1269545).
- Record
SUSE-SU-2026:3085-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
python-engineioPyPI |
through 4.13.1 | 4.13.2 |
python-engineioDebian:12 |
All versions, plus listed versions 4.11.1-0.14.11.2-14.12.1-14.12.1-24.13.0-1 Show 6 moreShow less4.13.0-24.14.0-14.3.4-24.3.4-2.14.9.0-14.9.0-2 |
None known |
python-engineioDebian:13 |
All versions, plus listed versions 4.11.2-14.12.1-14.12.1-24.13.0-14.13.0-24.14.0-1 |
None known |
python-engineioDebian:14 |
before 4.14.0-1, plus listed versions 4.11.2-14.12.1-14.12.1-24.13.0-14.13.0-2 |
4.14.0-1 |
python-engineioPyPI |
before 4.13.2, plus listed versions 0.1.00.2.00.3.00.3.10.4.0 Show 45 moreShow less0.5.00.5.10.6.00.6.10.6.20.6.30.6.40.6.50.6.60.6.70.6.80.6.90.7.00.7.10.7.20.8.00.8.10.8.20.8.30.8.40.8.50.8.60.8.70.8.80.9.00.9.10.9.21.0.01.0.11.0.21.0.31.0.41.1.01.1.11.1.21.2.01.2.11.2.21.2.31.2.41.3.01.3.11.3.21.4.01.5.0 |
4.13.2 |
rootio-python-engineioRoot:PyPI |
before 4.13.1+root.io.1 | 4.13.1+root.io.1 |
python-python-engineioSUSE:Linux Enterprise Module for Python 3 15 SP7 From an advisory covering 2 CVEs |
before 4.3.4-150600.3.3.1 | 4.3.4-150600.3.3.1 |
python-python-engineioSUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 2 CVEs |
before 4.3.4-150600.3.3.1 | 4.3.4-150600.3.3.1 |
python-python-engineioSUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 2 CVEs |
before 4.3.4-150600.3.3.1 | 4.3.4-150600.3.3.1 |
python-engineioUbuntu:18.04:LTS |
All versions, plus listed versions 1.6.1-1 |
None known |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-engineioUbuntu:20.04:LTS |
All versions, plus listed versions 3.0.0+dfsg-13.11.1-1 |
None known |
python-engineioUbuntu:22.04:LTS |
All versions, plus listed versions 4.0.0-1 |
None known |
python-engineioUbuntu:24.04:LTS |
All versions, plus listed versions 4.3.4-2 |
None known |
python-engineioUbuntu:26.10 |
All versions, plus listed versions 4.13.0-2 |
None known |
python-engineioUbuntu:26.04:LTS |
All versions, plus listed versions 4.12.1-24.13.0-2 |
None known |
python-python-engineioopenSUSE:Leap 16.0 From an advisory covering 2 CVEs |
before 4.12.0-bp160.2.1 | 4.12.0-bp160.2.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-48802 is a high vulnerability (CVSS 7.5) in Miguelgrinberg Python-engineio, published June 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.57%, the 47th percentile. Fixed in python-engineio 4.13.2.
References
github.com/miguelgrinberg/python-engineio/security/advisories/GHSA-cgwc-pv48-fhj5
github.com/pypa/advisory-database/tree/main/vulns/python-engineio/PYSEC-2026-3032.yaml
github.com/advisories/GHSA-cgwc-pv48-fhj5
github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48802.json
nvd.nist.gov/vuln/detail/CVE-2026-48802
security-tracker.debian.org/tracker/CVE-2026-48802
Show 9 moreShow less
github.com/miguelgrinberg/python-engineio
pypi.org/project/python-engineio
suse.com/support/update/announcement/2026/suse-su-20263085-1
bugzilla.suse.com/1269544
bugzilla.suse.com/1269545
suse.com/security/cve/CVE-2026-48802
suse.com/security/cve/CVE-2026-48809
ubuntu.com/security/CVE-2026-48802
cve.org/CVERecord?id=CVE-2026-48802
Left out here: 93 versions. The JSON record has them.