
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-53505 is an Uncontrolled Resource Consumption (CWE-400) vulnerability in Thumbor, an open-source photo thumbnail service by globo.com. The filters:proportion(<value>) filter does not enforce an upper bound on its input and executes in the post-transform phase, allowing an attacker to trigger arbitrarily large image resizes that exhaust CPU and memory, resulting in denial of service. All versions up to and including 7.7.7 are affected; the issue is fixed in version 7.8.0. It carries a CVSS v3.1 base score of 7.5 (High) (Github Advisory, Thumbor Release).
The root cause lies in thumbor/filters/proportion.py, where the filter parameter is parsed as a float (BaseFilter.DecimalNumber) with no enforced maximum value. The filter computes new_width = source_width * value and new_height = source_height * value, then calls engine.resize(new_width, new_height) — meaning a value like 10000 would attempt to resize an image to 10,000× its original dimensions. Critically, the proportion filter runs in the POST_TRANSFORM phase, after the main transform pipeline, effectively bypassing any MAX_WIDTH/MAX_HEIGHT request-level clamping applied earlier in the request lifecycle. While documentation specifies the argument should be in the range 0.0 to 1.0, this constraint was never enforced in code (Github Advisory, Fix Commit).
Successful exploitation results in remote denial of service through severe CPU and/or memory exhaustion, potentially causing process crashes or OOM kills on the Thumbor server. There is no confidentiality or integrity impact — the vulnerability is purely an availability concern. The severity of exploitability depends on deployment configuration: if /unsafe/ URLs are enabled (a common default in some deployments), the attack is fully unauthenticated; if disabled, an attacker still only needs a valid signed URL, which may be obtainable by any authorized user or partner (Github Advisory).
thumbor in HTTP headers or response bodies) or by probing known Thumbor URL patterns./unsafe/ URLs by sending a test request such as http://<target>/unsafe/100x100/filters:proportion(1.0)/example.jpg. A valid response indicates ALLOW_UNSAFE_URL=True.http://<target>/unsafe/100x100/filters:proportion(10000)/example.jpg. The server will attempt to resize the image to 10,000× its dimensions./unsafe/ is disabled but the attacker has access to a signing service or valid signed URLs, construct a signed URL incorporating filters:proportion(10000) and submit it to the Thumbor endpoint.filters:proportion(<large_value>) in the URL path (e.g., proportion(10000), proportion(9999), or any value significantly greater than 1.0); high-volume requests from a single or small set of source IPs targeting the image service.filters:proportion values far exceeding 1.0; HTTP 500 errors or timeout responses following such requests; OOM killer log entries in system logs (/var/log/syslog or dmesg) referencing the Thumbor process.Upgrade Thumbor to version 7.8.0 or later, which enforces that the proportion filter value must be in the range (0.0, 1.0] — any value outside this range is silently rejected before any arithmetic is performed (Thumbor Release, Fix Commit). As an interim workaround, disable the proportion filter by removing it from BUILTIN_FILTERS in the Thumbor configuration, or disable ALLOW_UNSAFE_URL to require signed URLs and limit access to trusted parties only. Additionally, consider implementing rate limiting and request-level resource controls (e.g., CPU/memory limits via cgroups or container resource constraints) on the Thumbor service to reduce the blast radius of any DoS attempt.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."