Thumbor, Denial of Service (Uncontrolled Resource Consumption), CVE-2026-53505 (HIGH) -DC-Jul2026-1157

Listen to this Post

Thumbor versions prior to 7.8.0 contain a vulnerability in the `filters:proportion()` filter. The filter parses the `` parameter as a float with no upper bound enforcement and executes in the POST_TRANSFORM phase, which occurs after the main transform pipeline. This execution phase allows the filter to bypass request-level size clamping protections—such as `MAX_WIDTH` and MAX_HEIGHT—that are applied earlier in the request lifecycle to `req.width` and req.height.
The filter computes new image dimensions as `new_width = source_width value` and new_height = source_height value, then calls engine.resize(new_width, new_height). Although the official documentation states that the percentage argument should be between `0.0` and 1.0, the implementation fails to enforce this constraint. An attacker can supply an extremely large value (e.g., 10000), triggering massive image resizing that exhausts CPU and memory resources, leading to denial of service.
Exploitation depends on deployment configuration. If `/unsafe/` URLs are enabled (ALLOW_UNSAFE_URL=True), an unauthenticated attacker can exploit this remotely. If `/unsafe/` is disabled, the attacker requires a valid signed URL—meaning the attacker must be an authorized user, partner, or have obtained signed URLs issued by a trusted signing service. The vulnerability is fixed in Thumbor version 7.8.0.

DailyCVE Form:

Platform: Thumbor
Version: < 7.8.0
Vulnerability: Unbounded post-transform resize
Severity: HIGH (CVSS 7.5)
Date: 2026-07-31

Prediction: 2026-07-31 (already published)

What Undercode Say:

Check Thumbor version
pip show thumbor | grep Version
Check if /unsafe/ is enabled (common in default deployments)
Look for ALLOW_UNSAFE_URL=True in configuration

The vulnerability resides in thumbor/filters/proportion.py. The `value` is parsed as a float using `BaseFilter.DecimalNumber` with no maximum validation. The filter executes in the default `POST_TRANSFORM` phase, bypassing earlier size clamping. The documentation in `docs/proportion.rst` states the value should be `0.0` to 1.0, but the code does not enforce this.

Exploit:

Preconditions:

  • The `proportion` filter is enabled by default via BUILTIN_FILTERS.
  • Either `/unsafe/` URLs are allowed (ALLOW_UNSAFE_URL=True), OR the attacker has a valid signed URL.

Example request 1 (signed URL):

http://<host>:<port>/<url-sign>/100x100/filters:proportion(10000)/example.jpg

Example request 2 (/unsafe/):

http://<host>:<port>/unsafe/100x100/filters:proportion(10000)/example.jpg

Sending such a request triggers `new_width = source_width 10000` and new_height = source_height 10000, causing extreme CPU/memory exhaustion and potentially process crash or OOM kill.

Protection:

Upgrade to Thumbor version 7.8.0 or later, which enforces strict bounds on the `proportion` parameter, limiting it to values between `0.0` and `1.0` as documented.

If upgrading is not immediately possible:

  • Disable `/unsafe/` URLs (ALLOW_UNSAFE_URL=False).
  • Tightly control signed URLs and ensure they are not exposed to untrusted parties.
  • Consider removing the `proportion` filter from `BUILTIN_FILTERS` if not required.

Impact:

  • Remote Denial of Service via CPU and/or memory exhaustion, potentially leading to process crash or OOM kill.
  • If `/unsafe/` is enabled: unauthenticated remote DoS.
  • If `/unsafe/` is disabled: exploitation requires a valid signed URL, reducing exposure but still posing risk to any party who can generate or use signed URLs.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top