Skip to main content
← Vulnerabilities

Tornado before 6.6 Path Traversal via static_url() Version Hashing

Only Tornado applications that pass untrusted input, such as a query parameter, as the path argument to static_url() are affected in versions before 6.6. Fixed in Tornado 6.6.

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

8.3HighCNA
Exploited
No known exploitation
Fix
Fixed in 6.6
Who is exposed
Not reported

Do first: Upgrade to a fixed version: 6.6.

Published
Last modified
0.34% · 27th percentile
25/100 · provisional
Unclear
None on Exploit-DB, Metasploit or GitHub

Summary

Tornado before 6.6 contains a path traversal vulnerability in RequestHandler.static_url() and get_version() that allows attackers to hash files outside static_path using ../ sequences. Attackers controlling input passed to static_url() can obtain SHA-512 hashes of readable files to confirm their existence, or reference /dev/zero to block the event loop indefinitely.

cve.now Index

25Pcve.now Index 25 of 100 · methodology v3 · provisional
  • Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
  • Exposure17/25No login or user action needed, reachable over the network without a login · Unknown: Advisories don't say whether default setups are affected
  • Reach?/20Unknown. No tracked technology or package matched
  • Severity8.3/10CVSS 8.3
  • No patch0/5No signal

What would change the score

  • Would score about 70 if added to CISA KEV
  • Would score about 65 if CISA's SSVC rates exploitation active
  • Would score about 30 if advisories confirm default setups are exposed

What to do

  • Upgrade to a fixed version: 6.6.

  • Workaround: Validate or allowlist any path passed to static_url(), or avoid passing request-derived values to it

Timeline

  1. CVE published
  2. First seen by cve.now

Affected versions

  • tornadoweb tornado

    fixed in 6.6

Evidence 2

  1. Advisory
  2. Link

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

Questions about CVE-2026-123534

Is CVE-2026-123534 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data

What does this mean?

static_url() can be made to hash files the server process can read, outside the intended static directory. The attacker obtains the SHA-512 hash of such a file, which can confirm that the file exists, or block the server indefinitely by naming a file that never ends, such as /dev/zero.Source: github.com, vulncheck.com

Which versions are affected by CVE-2026-123534?

tornado: before 6.6.Source: cve.now feed data

Am I affected, and how do I check?

Tornado versions before 6.6 are affected, but only applications that pass a value derived from untrusted input, such as a query parameter, as the path argument to static_url(). Check the installed version with pip show tornado and search the code for calls to static_url().Source: github.com, vulncheck.com

How do I fix CVE-2026-123534?

Upgrade to Tornado 6.6 or later. Until you can upgrade, validate or allowlist any path passed to static_url(), or avoid passing request-derived values to it.Source: github.com, vulncheck.com