
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-53503 is a divide-by-zero vulnerability in Thumbor's filters:convolution() filter that allows remote attackers to crash the Thumbor process, causing a denial of service. The flaw affects all Thumbor versions up to and including 7.7.7 (pip package). It was originally reported by researcher m01e-40x, published to the GitHub Advisory Database on July 31, 2026, and assigned GHSA-cqjp-jf4r-h5q9. The vulnerability carries a CVSS v3.1 base score of 7.5 (High) (Github Advisory).
The root cause is improper input validation (CWE-20) combined with a divide-by-zero condition (CWE-369) in Thumbor's convolution filter. The Python filter entry point (thumbor/filters/convolution.py) uses BaseFilter.PositiveNumber to validate the <columns> parameter, which accepts 0 because its regex ([\d]+) matches the digit zero. This zero value is then passed directly to the native C extension (thumbor/ext/filters/_convolution.c), where columns_count is used as a divisor in modulo and division operations without any zero-check guard. On x86_64 Linux and macOS Intel, this triggers undefined behavior that reliably manifests as a fatal SIGFPE (divide-by-zero trap), crashing the entire Thumbor worker process. A proof-of-concept request is publicly documented in the advisory (Github Advisory, Patch Commit).
Successful exploitation causes a complete crash of the Thumbor process via SIGFPE, resulting in a full availability loss for the image thumbnail service. There is no confidentiality or integrity impact — the vulnerability is purely a remote denial-of-service condition. Repeated exploitation can keep the service continuously unavailable, disrupting any application or pipeline that depends on Thumbor for image processing (Github Advisory).
/unsafe/ URL prefix (e.g., http://<host>/unsafe/100x100/example.jpg). A valid image response confirms ALLOW_UNSAFE_URL=True and unauthenticated access.columns=0:http://<host>/unsafe/400x400/filters:convolution(1;2;1;2;4;2;1;2;1,0,true)/example.jpgcolumns=0 to the C extension, which performs kernel_size % 0, triggering a SIGFPE.filters:convolution( with a ,0, parameter (e.g., convolution(1;2;1;2;4;2;1;2;1,0,true)); requests originating from a single or rotating set of IPs targeting the image service.filters:convolution(...,0,...) in the URL path; application or system logs recording SIGFPE signals or unexpected process termination for the Thumbor worker.Upgrade Thumbor to version 7.8.0 or later, which fixes the vulnerability in both the Python filter layer (replacing BaseFilter.PositiveNumber with BaseFilter.PositiveNonZeroNumber to reject columns=0 at the regex level) and the C extension (adding an explicit columns_count <= 0 guard before any division) (Thumbor Release, Patch Commit). As a temporary workaround for deployments that cannot immediately upgrade, disabling the convolution filter by removing it from BUILTIN_FILTERS in the Thumbor configuration will prevent exploitation. Additionally, disabling ALLOW_UNSAFE_URL limits the attack surface to authenticated/signed requests only (Github Advisory).
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."