CVE-2026-48809
python-engineio has possible denial of service due to maximum payload size sometimes not being enforced
python-engineio is a Python implementation of the Engine.IO realtime client and server. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
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 possible denial of service due to maximum payload size sometimes not being enforced
python-engineio is a Python implementation of the Engine.IO realtime client and server. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
CVE-2026-48809- 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-56854
7.5
python-engineio is a Python implementation of the Engine.IO realtime client and server. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
EUVD-2026-56854- 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-m9gh-vj53-gvh9
7.5
python-engineio has possible denial of service due to maximum payload size sometimes not being enforced
Impact
There are two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are:
- POST requests, when using ASGI with the long polling transport
- WebSocket messages, when using Aiohttp with the WebSocket transport
Patches
Version 4.13.2 addresses this issue as follows:
- ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded.
- Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
GHSA-m9gh-vj53-gvh9- 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. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
CVE-2026-48809- 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 possible denial of service due to maximum payload size sometimes not being enforced
python-engineio is a Python implementation of the Engine.IO realtime client and server. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
CVE-2026-48809- 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-48809
7.5
python-engineio is a Python implementation of the Engine.IO realtime client and server. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
DEBIAN-CVE-2026-48809- 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 7 moreShow less
OSVGHSA-m9gh-vj53-gvh9
7.5
python-engineio has possible denial of service due to maximum payload size sometimes not being enforced
Impact
There are two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are:
- POST requests, when using ASGI with the long polling transport
- WebSocket messages, when using Aiohttp with the WebSocket transport
Patches
Version 4.13.2 addresses this issue as follows:
- ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded.
- Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
GHSA-m9gh-vj53-gvh9- 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-3033
7.5
python-engineio has possible denial of service due to maximum payload size sometimes not being enforced
Impact
There are two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are:
- POST requests, when using ASGI with the long polling transport
- WebSocket messages, when using Aiohttp with the WebSocket transport
Patches
Version 4.13.2 addresses this issue as follows:
- ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded.
- Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
PYSEC-2026-3033- 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-48809
7.5
python-engineio is a Python implementation of the Engine.IO realtime client and server. Versions prior to 4.13.2 have two specific configurations of the python-engineio server in which the size of incoming messages is not checked before the messages are loaded into memory. An attacker can take advantage of these to cause unnecessary memory allocations in the python-engineio server. The two cases are POST requests, when using ASGI with the long polling transport and WebSocket messages, when using Aiohttp with the WebSocket transport. Version 4.13.2 addresses this issue. ASGI severs now only load the body of incoming requests into memory after the client is confirmed to be known and authenticated, and the payload size is below the maximum allowed size. Requests that do not comply with these requirements are discarded. Aiohttp servers configure the maximum payload size in the underlying WebSocket layer from Aiohttp, so that large messages are discarded by Aiohttp before they are delivered to python-engineio.
- Record
UBUNTU-CVE-2026-48809- 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:11170-1 No score
python311-python-engineio-4.13.3-1.1 on GA media
These are all security issues fixed in the python311-python-engineio-4.13.3-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11170-1- 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-48809 No score
CVE-2026-48809 in rootio-python-engineio - Patched by Root
Root has patched CVE-2026-48809 in the rootio-python-engineio package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-48809- 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 7 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:Tumbleweed |
before 4.13.3-1.1 | 4.13.3-1.1 |
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-48809 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.49%, the 42nd percentile. Fixed in python-engineio 4.13.2.
References
github.com/miguelgrinberg/python-engineio/security/advisories/GHSA-m9gh-vj53-gvh9
github.com/pypa/advisory-database/tree/main/vulns/python-engineio/PYSEC-2026-3033.yaml
github.com/advisories/GHSA-m9gh-vj53-gvh9
github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48809.json
nvd.nist.gov/vuln/detail/CVE-2026-48809
security-tracker.debian.org/tracker/CVE-2026-48809
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-48809
cve.org/CVERecord?id=CVE-2026-48809
Left out here: 93 versions. The JSON record has them.