CVE-2026-103262
Tornado before 6.5.9 Denial of Service via CurlAsyncHTTPClient
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
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
8.7
Tornado before 6.5.9 Denial of Service via CurlAsyncHTTPClient
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
CVE-2026-103262- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - 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-409
- Updated
- 2026-11-02
EUVDEUVD-2026-90656
8.7
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
EUVD-2026-90656- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-chx6-46f5-w4vp
7.5
tornado: CurlAsyncHTTPClient enforces no response-size limit — decompression bomb drives unbounded memory accumulation to OOM
An unbounded memory accumulation (decompression bomb) in tornado.curl_httpclient.CurlAsyncHTTPClient — the client-side sibling gap of CVE-2026-49855 — verified end-to-end on the 2026-08-15 master snapshot (6.6.dev1) and present unchanged in the latest release tag v6.5.8 and on master (checked 2026-08-17). When a Tornado application configures the curl client (the documented deployment for proxy support / advanced TLS options) and fetch()es an attacker-chosen or attacker-compromised URL with default decompress_response=True, a malicious server replying Content-Encoding: gzip with a ~2.8 MB wire bomb drove the client's RSS from 30,884 kB to 1,032,100 kB (~1008 MB) in 3.18 s (~350 MB/s, monotonic, no plateau) until the kernel OOM-killed the process (exit 137, cgroup OOMKilled=true) — with the transfer only 67% complete and no client-side size check ever intervening: curl_httpclient.py contains zero occurrences of max_body_size/MAXFILESIZE. The identical bomb against the default SimpleAsyncHTTPClient fails cleanly at ~65 MB, because every size gate CVE-2026-49855 added (compressed CL, chunked total, cumulative decompressed size — http1connection.py:620,676,742) lives in code the curl client never executes. This is a distinct component from the published advisory (which fixed _GzipMessageDelegate/SimpleAsyncHTTPClient only) and from the other curl-client advisories (credential handle-reuse GHSA-pw6j-qg29-8w7f, header CRLF GHSA-w235-7p84-xx57); the file's full commit history (latest 2026-06-17) shows no response-size work.
Details
tornado/curl_httpclient.py (line numbers identical on master 6.6.dev1, v6.5.8, and the audited snapshot):
"buffer": BytesIO(), # :202 — plain BytesIO, no accounting
...
else:
write_function = buffer.write # :359 — every decompressed byte lands here
curl.setopt(pycurl.WRITEFUNCTION, write_function) # :360
...
if request.decompress_response: # default True (HTTPRequest)
curl.setopt(pycurl.ENCODING, "gzip,deflate") # :373-374 — libcurl advertises + auto-decodes
libcurl decompresses the response before invoking WRITEFUNCTION, so the callback receives decompressed bytes, which are appended to an unbounded BytesIO until the transfer ends or the process dies. The only ceiling is request_timeout (default 20 s) — at zlib's hundreds of MB/s that still permits many GB of accumulation; the PoC raised it to 300 s and the 1 GiB cgroup cap was hit in 3.2 s regardless. There is no pycurl.MAXFILESIZE, no max_buffer_size/max_body_size plumbing (the constructor accepts no body-size option), and streaming_callback users fare no better (the callback variant at :353-356 also performs zero accounting).
Contrast — SimpleAsyncHTTPClient path (tornado/http1connection.py), all absent from the curl path:
if cast(int, content_length) > self._max_body_size: # :620 Content-Length gate
if total_size > self._max_body_size: # :676 chunked total gate
if self._decompressed_body_size > self._max_body_size: # :742 CVE-2026-49855 decompressed gate
SimpleAsyncHTTPClient.initialize() defaults max_buffer_size = 104857600 (100 MiB) with max_body_size defaulting to it (simple_httpclient.py:117-121); CurlAsyncHTTPClient.initialize() has no corresponding parameter at all.
Attack chain (attacker = malicious HTTP server; victim = any Tornado app doing fetch() on attacker-influenced URLs — URL fetchers, webhook processors, link previewers, RSS/probe pollers):
- App configures
AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient")(documented for proxy support; proxies are only supported with the curl client). - App calls
fetch("http://attacker/...")with defaults → request advertisesAccept-Encoding: gzip,deflate. - Attacker replies
200, `Content-Encoding:…
- Record
GHSA-chx6-46f5-w4vp- 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-400, CWE-409
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-h36x-fm6v-f9vx
8.7
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in...
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
GHSA-h36x-fm6v-f9vx- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - 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-409
- Updated
- 2026-11-02
NVD
8.7
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
CVE-2026-103262- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - 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-409
- Updated
- 2026-11-02
OSVBELL-CVE-2026-103262
7.5
- Record
BELL-CVE-2026-103262- 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 15 moreShow less
OSV
8.7
Tornado before 6.5.9 Denial of Service via CurlAsyncHTTPClient
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
CVE-2026-103262- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-409
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-103262
8.7
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
DEBIAN-CVE-2026-103262- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVGHSA-chx6-46f5-w4vp
7.5
tornado: CurlAsyncHTTPClient enforces no response-size limit — decompression bomb drives unbounded memory accumulation to OOM
An unbounded memory accumulation (decompression bomb) in tornado.curl_httpclient.CurlAsyncHTTPClient — the client-side sibling gap of CVE-2026-49855 — verified end-to-end on the 2026-08-15 master snapshot (6.6.dev1) and present unchanged in the latest release tag v6.5.8 and on master (checked 2026-08-17). When a Tornado application configures the curl client (the documented deployment for proxy support / advanced TLS options) and fetch()es an attacker-chosen or attacker-compromised URL with default decompress_response=True, a malicious server replying Content-Encoding: gzip with a ~2.8 MB wire bomb drove the client's RSS from 30,884 kB to 1,032,100 kB (~1008 MB) in 3.18 s (~350 MB/s, monotonic, no plateau) until the kernel OOM-killed the process (exit 137, cgroup OOMKilled=true) — with the transfer only 67% complete and no client-side size check ever intervening: curl_httpclient.py contains zero occurrences of max_body_size/MAXFILESIZE. The identical bomb against the default SimpleAsyncHTTPClient fails cleanly at ~65 MB, because every size gate CVE-2026-49855 added (compressed CL, chunked total, cumulative decompressed size — http1connection.py:620,676,742) lives in code the curl client never executes. This is a distinct component from the published advisory (which fixed _GzipMessageDelegate/SimpleAsyncHTTPClient only) and from the other curl-client advisories (credential handle-reuse GHSA-pw6j-qg29-8w7f, header CRLF GHSA-w235-7p84-xx57); the file's full commit history (latest 2026-06-17) shows no response-size work.
Details
tornado/curl_httpclient.py (line numbers identical on master 6.6.dev1, v6.5.8, and the audited snapshot):
"buffer": BytesIO(), # :202 — plain BytesIO, no accounting
...
else:
write_function = buffer.write # :359 — every decompressed byte lands here
curl.setopt(pycurl.WRITEFUNCTION, write_function) # :360
...
if request.decompress_response: # default True (HTTPRequest)
curl.setopt(pycurl.ENCODING, "gzip,deflate") # :373-374 — libcurl advertises + auto-decodes
libcurl decompresses the response before invoking WRITEFUNCTION, so the callback receives decompressed bytes, which are appended to an unbounded BytesIO until the transfer ends or the process dies. The only ceiling is request_timeout (default 20 s) — at zlib's hundreds of MB/s that still permits many GB of accumulation; the PoC raised it to 300 s and the 1 GiB cgroup cap was hit in 3.2 s regardless. There is no pycurl.MAXFILESIZE, no max_buffer_size/max_body_size plumbing (the constructor accepts no body-size option), and streaming_callback users fare no better (the callback variant at :353-356 also performs zero accounting).
Contrast — SimpleAsyncHTTPClient path (tornado/http1connection.py), all absent from the curl path:
if cast(int, content_length) > self._max_body_size: # :620 Content-Length gate
if total_size > self._max_body_size: # :676 chunked total gate
if self._decompressed_body_size > self._max_body_size: # :742 CVE-2026-49855 decompressed gate
SimpleAsyncHTTPClient.initialize() defaults max_buffer_size = 104857600 (100 MiB) with max_body_size defaulting to it (simple_httpclient.py:117-121); CurlAsyncHTTPClient.initialize() has no corresponding parameter at all.
Attack chain (attacker = malicious HTTP server; victim = any Tornado app doing fetch() on attacker-influenced URLs — URL fetchers, webhook processors, link previewers, RSS/probe pollers):
- App configures
AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient")(documented for proxy support; proxies are only supported with the curl client). - App calls
fetch("http://attacker/...")with defaults → request advertisesAccept-Encoding: gzip,deflate. - Attacker replies
200, `Content-Encoding:…
- Record
GHSA-chx6-46f5-w4vp- 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-400, CWE-409
- Updated
- 2026-11-02
OSVRHSA-2026:82040
7.5
Red Hat Security Advisory: python-tornado security update
- Record
RHSA-2026:82040- 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
OSVRHSA-2026:82041
7.5
Red Hat Security Advisory: python-tornado security update
- Record
RHSA-2026:82041- 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
OSVRLSA-2026:82040
7.5
Important: python-tornado security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- tornado: Tornado: Denial of Service via decompression bomb in CurlAsyncHTTPClient (CVE-2026-103262)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:82040- 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
OSVRLSA-2026:82041
7.5
Important: python-tornado security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- tornado: Tornado: Denial of Service via decompression bomb in CurlAsyncHTTPClient (CVE-2026-103262)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:82041- 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-103262
8.7
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
UBUNTU-CVE-2026-103262- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - 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-06
OSVALSA-2026:82040 No score
Important: python-tornado security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- tornado: Tornado: Denial of Service via decompression bomb in CurlAsyncHTTPClient (CVE-2026-103262)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:82040- Updated
- 2026-11-02
OSVALSA-2026:82041 No score
Important: python-tornado security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- tornado: Tornado: Denial of Service via decompression bomb in CurlAsyncHTTPClient (CVE-2026-103262)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:82041- Updated
- 2026-11-02
OSVAZL-105378 No score
CVE-2026-103262 affecting package python-tornado 6.3.3-11
Tornado versions before 6.5.9 contain an unbounded memory accumulation vulnerability in CurlAsyncHTTPClient that allows remote attackers to cause denial of service by sending a compressed response. Attackers can send a gzip-encoded decompression bomb that accumulates in memory without size limits, causing the application process to be killed by out-of-memory conditions.
- Record
AZL-105378- Updated
- 2026-11-05
OSVCLSA-2026-1790836708 No score
TuxCare security update for tornado (1 CVE)
TuxCare rebuilt tornado to address 1 CVE. Fixed in 6.1.0.post10+tuxcare.
- Record
CLSA-2026-1790836708- Updated
- 2026-11-02
OSVCLSA-2026-1790846524 No score
TuxCare security update for tornado (1 CVE)
TuxCare rebuilt tornado to address 1 CVE. Fixed in 5.1.1.post6+tuxcare.
- Record
CLSA-2026-1790846524- Updated
- 2026-11-02
OSVROOT-APP-PYPI-GHSA-chx6-46f5-w4vp No score
GHSA-chx6-46f5-w4vp in tornado - Patched by Root
Root has patched GHSA-chx6-46f5-w4vp in the tornado package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-GHSA-chx6-46f5-w4vp- Updated
- 2026-11-02
OSVUSN-8952-1 No score
python-tornado vulnerabilities
It was discovered that Tornado did not properly handle certain HTTP requests and network inputs. An attacker could possibly use these issues to cause a denial of service, expose sensitive information, or bypass access controls.
(CVE-2023-54397, CVE-2024-14029, CVE-2026-91990, CVE-2026-91992, CVE-2026-103262, CVE-2026-103263)
- Record
USN-8952-1- Updated
- 2026-11-06
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tornadoPyPI |
through 6.5.8 | 6.5.9 |
python3-tornadoAlmaLinux:9 |
before 6.5.10-1.el9_8.1 | 6.5.10-1.el9_8.1 |
python3-tornadoAlmaLinux:10 |
before 6.5.10-1.el10_2.1 | 6.5.10-1.el10_2.1 |
python-tornadoAzure Linux:3 |
through 6.3.3-11 | None known |
py3-tornadoAlpaquita:25 |
6.5.1-r0 up to 6.5.10-r0 | 6.5.10-r0 |
py3-tornadoAlpaquita:stream |
6.3.3-r0 up to 6.5.10-r0 | 6.5.10-r0 |
tornadoTuxCare:PyPI |
6.1 up to 6.1.0.post10+tuxcare, plus listed versions 6.1.0.post1+tuxcare6.1.0.post2+tuxcare6.1.0.post3+tuxcare6.1.0.post4+tuxcare6.1.0.post5+tuxcare Show 4 moreShow less6.1.0.post6+tuxcare6.1.0.post7+tuxcare6.1.0.post8+tuxcare6.1.0.post9+tuxcare |
6.1.0.post10+tuxcare |
tornadoTuxCare:PyPI |
5.1.1 up to 5.1.1.post6+tuxcare, plus listed versions 5.1.1.post1+tuxcare5.1.1.post2+tuxcare5.1.1.post3+tuxcare5.1.1.post4+tuxcare5.1.1.post5+tuxcare |
5.1.1.post6+tuxcare |
python-tornadoDebian:12 |
All versions, plus listed versions 6.2.0-36.2.0-3+deb12u16.2.0-3+deb12u26.2.0-3+deb12u36.2.0-3+deb12u4 Show 19 moreShow less6.3.2-16.4.0-16.4.0-26.4.1-16.4.1-26.4.1-36.4.2-16.4.2-26.4.2-36.5.2-16.5.2-26.5.2-36.5.4-0.16.5.4-16.5.5-16.5.5-26.5.5-36.5.5-46.5.5-5 |
None known |
python-tornadoDebian:13 |
All versions, plus listed versions 6.4.2-36.4.2-3+deb13u16.4.2-3+deb13u26.5.2-16.5.2-2 Show 8 moreShow less6.5.2-36.5.4-0.16.5.4-16.5.5-16.5.5-26.5.5-36.5.5-46.5.5-5 |
None known |
Show 25 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-tornadoDebian:14 |
All versions, plus listed versions 6.4.2-36.5.2-16.5.2-26.5.2-36.5.4-0.1 Show 6 moreShow less6.5.4-16.5.5-16.5.5-26.5.5-36.5.5-46.5.5-5 |
None known |
tornadoPyPI |
before 6.5.9, plus listed versions 0.21.01.11.1.11.2 Show 45 moreShow less1.2.12.02.12.1.12.22.2.12.32.42.4.13.03.0.13.0.23.13.1.13.23.2.13.2.24.04.0.14.0.24.14.1b24.24.2.14.2b14.34.3b14.3b24.44.4.14.4.24.4.34.4b14.54.5.14.5.24.5.34.5b14.5b25.05.0.15.0.25.0a15.0b15.1 |
6.5.9 |
python-tornadoRed Hat:enterprise_linux:9::appstream |
before 0:6.5.10-1.el9_8.1 | 0:6.5.10-1.el9_8.1 |
python-tornado-debugsourceRed Hat:enterprise_linux:9::appstream |
before 0:6.5.10-1.el9_8.1 | 0:6.5.10-1.el9_8.1 |
python3-tornadoRed Hat:enterprise_linux:9::appstream |
before 0:6.5.10-1.el9_8.1 | 0:6.5.10-1.el9_8.1 |
python3-tornado-debuginfoRed Hat:enterprise_linux:9::appstream |
before 0:6.5.10-1.el9_8.1 | 0:6.5.10-1.el9_8.1 |
python-tornadoRed Hat:enterprise_linux:10.2 |
before 0:6.5.10-1.el10_2.1 | 0:6.5.10-1.el10_2.1 |
python-tornado-debugsourceRed Hat:enterprise_linux:10.2 |
before 0:6.5.10-1.el10_2.1 | 0:6.5.10-1.el10_2.1 |
python3-tornadoRed Hat:enterprise_linux:10.2 |
before 0:6.5.10-1.el10_2.1 | 0:6.5.10-1.el10_2.1 |
python3-tornado-debuginfoRed Hat:enterprise_linux:10.2 |
before 0:6.5.10-1.el10_2.1 | 0:6.5.10-1.el10_2.1 |
python-tornadoRocky Linux:9 |
before 0:6.5.10-1.el9_8.1 | 0:6.5.10-1.el9_8.1 |
python-tornadoRocky Linux:10 |
before 0:6.5.10-1.el10_2.1 | 0:6.5.10-1.el10_2.1 |
tornadoRoot:PyPI |
before 6.5.3+aikido.7 | 6.5.3+aikido.76.2+aikido.126.5.3+aikido.6 |
python-tornadoUbuntu:Pro:16.04:LTS |
before 4.2.1-1ubuntu3.1+esm4, plus listed versions 4.2.1-1ubuntu24.2.1-1ubuntu34.2.1-1ubuntu3.14.2.1-1ubuntu3.1+esm14.2.1-1ubuntu3.1+esm24.2.1-1ubuntu3.1+esm3 |
4.2.1-1ubuntu3.1+esm4 |
python-tornadoUbuntu:Pro:18.04:LTS |
before 4.5.3-1ubuntu0.2+esm4, plus listed versions 4.5.1-2.1~build24.5.2-14.5.3-14.5.3-1ubuntu0.14.5.3-1ubuntu0.24.5.3-1ubuntu0.2+esm14.5.3-1ubuntu0.2+esm24.5.3-1ubuntu0.2+esm3 |
4.5.3-1ubuntu0.2+esm4 |
python-tornadoUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 6.1.0-1build16.1.0-26.1.0-36.1.0-3build16.1.0-3ubuntu0.1~esm1 Show 5 moreShow less6.1.0-3ubuntu0.1~esm26.1.0-3ubuntu0.1~esm46.1.0-3ubuntu0.1~esm56.1.0-3ubuntu0.1~esm66.1.0-3ubuntu0.1~esm7 |
None known |
python-tornadoUbuntu:24.04:LTS |
before 6.4.0-1ubuntu0.6, plus listed versions 6.3.2-16.4.0-0ubuntu16.4.0-16.4.0-1build16.4.0-1ubuntu0.16.4.0-1ubuntu0.26.4.0-1ubuntu0.46.4.0-1ubuntu0.5 |
6.4.0-1ubuntu0.6 |
python-tornadoUbuntu:26.04:LTS |
before 6.5.4-0.1ubuntu0.2, plus listed versions 6.4.2-36.5.2-36.5.4-0.16.5.4-0.1ubuntu0.1 |
6.5.4-0.1ubuntu0.2 |
python-tornadoUbuntu:Pro:16.04:LTS From an advisory covering 6 CVEs |
before 4.2.1-1ubuntu3.1+esm4, plus listed versions 4.2.1-1ubuntu24.2.1-1ubuntu34.2.1-1ubuntu3.14.2.1-1ubuntu3.1+esm14.2.1-1ubuntu3.1+esm24.2.1-1ubuntu3.1+esm3 |
4.2.1-1ubuntu3.1+esm4 |
python-tornadoUbuntu:Pro:18.04:LTS From an advisory covering 6 CVEs |
before 4.5.3-1ubuntu0.2+esm4, plus listed versions 4.5.1-2.1~build24.5.2-14.5.3-14.5.3-1ubuntu0.14.5.3-1ubuntu0.24.5.3-1ubuntu0.2+esm14.5.3-1ubuntu0.2+esm24.5.3-1ubuntu0.2+esm3 |
4.5.3-1ubuntu0.2+esm4 |
python-tornadoUbuntu:Pro:20.04:LTS From an advisory covering 6 CVEs |
before 6.0.3+really5.1.1-3ubuntu0.1~esm7, plus listed versions 5.1.1-4ubuntu15.1.1-4ubuntu56.0.3+really5.1.1-26.0.3+really5.1.1-2build16.0.3+really5.1.1-2build2 Show 4 moreShow less6.0.3+really5.1.1-36.0.3+really5.1.1-3ubuntu0.1~esm16.0.3+really5.1.1-3ubuntu0.1~esm36.0.3+really5.1.1-3ubuntu0.1~esm5 |
6.0.3+really5.1.1-3ubuntu0.1~esm7 |
python-tornadoUbuntu:Pro:22.04:LTS From an advisory covering 6 CVEs |
before 6.1.0-3ubuntu0.1~esm6, plus listed versions 6.1.0-1build16.1.0-26.1.0-36.1.0-3build16.1.0-3ubuntu0.1~esm16.1.0-3ubuntu0.1~esm26.1.0-3ubuntu0.1~esm46.1.0-3ubuntu0.1~esm5 |
6.1.0-3ubuntu0.1~esm6 |
python-tornadoUbuntu:24.04:LTS From an advisory covering 6 CVEs |
before 6.4.0-1ubuntu0.6, plus listed versions 6.3.2-16.4.0-0ubuntu16.4.0-16.4.0-1build16.4.0-1ubuntu0.16.4.0-1ubuntu0.26.4.0-1ubuntu0.46.4.0-1ubuntu0.5 |
6.4.0-1ubuntu0.6 |
python-tornadoUbuntu:26.10 From an advisory covering 6 CVEs |
before 6.5.5-5ubuntu1.1, plus listed versions 6.5.4-0.16.5.5-26.5.5-46.5.5-5 |
6.5.5-5ubuntu1.1 |
python-tornadoUbuntu:26.04:LTS From an advisory covering 6 CVEs |
before 6.5.4-0.1ubuntu0.2, plus listed versions 6.4.2-36.5.2-36.5.4-0.16.5.4-0.1ubuntu0.1 |
6.5.4-0.1ubuntu0.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | OSV | |
| affected | ||
| facts | OSV | |
| aliases | ||
| affected, aliases, references | ||
| 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-103262 is a high vulnerability (CVSS 8.7) in Tornadoweb Tornado, published September 30, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.63%, the 50th percentile. Fixed in tornado 6.5.9.
References
github.com/tornadoweb/tornado/security/advisories/GHSA-chx6-46f5-w4vp
github.com/tornadoweb/tornado/commit/e412435febba4569c552c5c9054f1bf92bd171a9
vulncheck.com/advisories/tornado-before-6.5.9-denial-of-service-via-curlasynchttpclient
github.com/tornadoweb/tornado/pull/3719
github.com/tornadoweb/tornado/commit/15f056080d8e456f92cca8ad0c33e5a5480414ac
github.com/tornadoweb/tornado/commit/6564e0a0922c16f239d3a18adccd04736e380c89
Show 29 moreShow less
github.com/tornadoweb/tornado/commit/aa2eb0d989716ac00fe8d7a9919b81c1eccd6ec4
github.com/tornadoweb/tornado/releases/tag/v6.5.9
github.com/advisories/GHSA-chx6-46f5-w4vp
nvd.nist.gov/vuln/detail/CVE-2026-103262
github.com/advisories/GHSA-h36x-fm6v-f9vx
access.redhat.com/errata/RHSA-2026:82040
access.redhat.com/security/cve/CVE-2026-103262
bugzilla.redhat.com/2544534
errata.almalinux.org/9/ALSA-2026-82040.html
access.redhat.com/errata/RHSA-2026:82041
errata.almalinux.org/10/ALSA-2026-82041.html
docs.bell-sw.com/security/cves/CVE-2026-103262
github.com/CVEProject/cvelistV5/tree/main/cves/2026/103xxx/CVE-2026-103262.json
security-tracker.debian.org/tracker/CVE-2026-103262
github.com/tornadoweb/tornado
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=2544534
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_82040.json
cve.org/CVERecord?id=CVE-2026-103262
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_82041.json
errata.rockylinux.org/RLSA-2026:82040
errata.rockylinux.org/RLSA-2026:82041
ubuntu.com/security/CVE-2026-103262
ubuntu.com/security/notices/USN-8952-1
ubuntu.com/security/CVE-2023-54397
ubuntu.com/security/CVE-2024-14029
ubuntu.com/security/CVE-2026-91990
ubuntu.com/security/CVE-2026-91992
ubuntu.com/security/CVE-2026-103263
Left out here: 34 versions and the rest of 2 source descriptions. The JSON record has them.