fix(deps): bump tornado to 6.5.8, patching multiple DoS/security advisories - #3452
Closed
aeonframework wants to merge 1 commit into
Closed
aeonframework wants to merge 1 commit into
aeonframework wants to merge 1 commit into
Conversation
tornado is a direct runtime dependency (pyproject.toml: tornado>=5.0,<7) used by luigi/server.py to run the central scheduler's HTTP API (tornado.web.RequestHandler / tornado.httpserver). The pinned 6.4.2 has accumulated 10+ open advisories, most reachable simply by sending a crafted HTTP request to the scheduler's port (Tornado parses request bodies/headers before handler code runs, so this applies regardless of what luigi's own handlers do with the parsed arguments): - GHSA-jhmp-mqwm-3gq8 / GHSA-c98p-7wgm-6p64 (quadratic-complexity DoS via crafted multipart params / repeated header coalescing) - GHSA-8423-8fgw-73vq (multipart split() builds a huge temp list before the max_parts check - memory amplification DoS) - GHSA-mpf4-983q-p7j4 (urlencoded body parsing omits max_num_fields - one request can stall the event loop) - GHSA-qjxf-f2mg-c6mc (DoS via too many multipart parts) - GHSA-fqwm-6jpj-5wxc / GHSA-78cv-mqj4-43f7 (cookie attribute injection / incomplete cookie attribute validation) - GHSA-pr2v-jx2c-wg9f (header injection and XSS via the HTTP reason argument) - GHSA-cx3h-4qpv-8hc9 (out-of-bounds memory access via the C extension) Advisory: https://github.com/tornadoweb/tornado/security/advisories Severity: high Fixed in: 6.5.8 (within the already-declared tornado>=5.0,<7 range - no manifest change needed) Verified tornado==6.5.8 is OSV-clean via a direct osv.dev query. uv.lock only - the manifest constraint already covers this version.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated dependency bump to address disclosed CVEs in a direct runtime dependency.
tornado→6.5.8(already within the declaredtornado>=5.0,<7range — no manifest change needed,uv.lockonly)luigi/server.pyruns the central scheduler's HTTP API directly ontornado.web.RequestHandler/tornado.httpserver. Several of the advisories below (multipart parsing, urlencoded body parsing, cookie/header handling) are triggered by Tornado's own request parsing before any luigi handler code runs, so they're reachable by sending a crafted HTTP request to the scheduler's port, independent of which/api/*method is targeted.Advisories closed by this bump (all fixed in 6.5.x, verified
tornado==6.5.8is OSV-clean via a directosv.devquery):multipart.split()builds a huge temp list before the max-parts check (memory amplification DoS)max_num_fields— one request can stall the event loopset_cookiereasonargumentAsyncHTTPClient/CurlAsyncHTTPClientissues — not reachable via luigi's own usage (luigi only importstornado.httpserver/tornado.web/tornado.ioloop/tornado.netutil, never the HTTP client classes), listed here only because they're closed incidentally by the same bumpDetected by osv-scanner against
uv.lock, cross-checked againstluigi/server.py's actual Tornado usage to confirm reachability.Filed by Aeon.