Skip to main content

Thumbor EUVDEUVD-2026-51597

| CVE-2026-53500 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-07-31 GitHub_M GHSA-6x26-6r6f-m537
8.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit crafted URL with bypass hostname to Thumbor unsafe endpoint
  2. Exploit
    validate() matches attacker hostname via unescaped dot wildcard
  3. Execution
    HTTP loader fetches content from attacker-controlled or internal host
  4. Impact
    Thumbor returns response to attacker

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires two conditions, both of which match Thumbor's default and documented deployment profile. First, ALLOWED_SOURCES must contain at least one plain-string hostname entry; this is the overwhelmingly common configuration because all official documentation examples use plain strings and the configuration description prior to 7.8.0 described entries as 'regular expressions,' encouraging users to write domain names directly. Second, the attacker must be able to influence the image source URL submitted to Thumbor, which is true by default when ALLOW_UNSAFE_URL=True (Thumbor's default) or when the application forwards user-controlled input to a signed URL endpoint. Instances where ALLOWED_SOURCES is empty (no allowlist enforced) are not protected by this check regardless. Instances where ALLOWED_SOURCES is populated exclusively with pre-compiled re.Pattern objects are not affected by the bypass, as compiled patterns are handled via a separate code path. Exploitation is scoped to Thumbor versions prior to 7.8.0 on the pip/thumbor package.

Impact

The CVSS 3.1 score of 8.2 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L) reflects unauthenticated remote exploitation with high confidentiality impact, consistent with SSRF enabling access to internal network resources and metadata services. The base vector metrics are accurate given that Thumbor's default configuration (ALLOW_UNSAFE_URL=True, plain-string ALLOWED_SOURCES) satisfies both preconditions for exploitation without any non-default setup. EPSS data was not provided, so statistical exploitation probability cannot be quantified. The vulnerability is not listed in the CISA KEV catalog, meaning active widespread exploitation is not confirmed, but a detailed proof-of-concept with working Python code is vendor-published in the GitHub advisory, significantly lowering the bar for exploitation. The combination of a trivial bypass mechanism, default-on preconditions, and published PoC makes this a genuine priority for any public-facing Thumbor deployment, despite the absence of KEV confirmation. The partial A:L impact likely reflects potential for resource exhaustion by directing Thumbor to fetch large payloads from internal hosts.

Exploit ScenarioDerived

An attacker targets a public-facing Thumbor instance running a version prior to 7.8.0 with its default ALLOW_UNSAFE_URL=True setting and an ALLOWED_SOURCES list containing 's.glbimg.com'. They submit a request to Thumbor's unsafe endpoint specifying an image URL hosted at 'sXglbimgYcom' - an attacker-controlled domain whose name satisfies the unescaped dot regex - causing Thumbor's HTTP loader to fetch and proxy content from that host, potentially including responses that probe internal network topology or cloud metadata endpoints. A working proof-of-concept demonstrating this bypass is included verbatim in the vendor's GitHub security advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 31, 2026

Server-side request forgery in Thumbor prior to 7.8.0 allows unauthenticated remote attackers to bypass the ALLOWED_SOURCES hostname allowlist - the service's primary SSRF defense - and cause Thumbor to fetch images from arbitrary hosts, including internal network resources. The bypass exploits Python's regex engine treating unescaped dots as wildcards: an allowlist entry of 's.glbimg.com' silently matches attacker-controlled hostnames like 'sXglbimgYcom'. Because ALLOW_UNSAFE_URL defaults to True and all official documentation examples use plain-string patterns, the preconditions for exploitation match the default deployment profile. No public KEV listing, but a vendor-confirmed proof-of-concept is embedded in GitHub security advisory GHSA-6x26-6r6f-m537.

RemediationAI

Upgrade to Thumbor 7.8.0 or later via 'pip install --upgrade thumbor'; this is the definitive fix confirmed by the vendor release at https://github.com/thumbor/thumbor/releases/tag/7.8.0 and the patch commit at https://github.com/thumbor/thumbor/commit/68876715350c6c8f49c324e5515e64908830aed7. As a pre-patch workaround, replace all plain-string entries in ALLOWED_SOURCES with compiled re.Pattern objects (e.g., re.compile(r'https?://s\.glbimg\.com/.*')); note that compiled patterns match against the full normalized URL rather than just the hostname, so existing configurations must be updated accordingly to avoid both over-blocking and under-blocking. A secondary mitigation is to set ALLOW_UNSAFE_URL=False and enforce strict URL signing, which removes the ability for unauthenticated users to supply arbitrary image URLs; however, this does not fix the regex bypass and may break application functionality that relies on unsigned URLs. Do not rely on network-layer blocking alone as a substitute for patching, since Thumbor may be used to proxy requests to internal segments not protected by perimeter controls.

Affected VersionsENISA

thumbor < 7.8.0

Affected Packages

pypi thumbor fix: 7.8.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Thumbor (cpe:2.3:a:thumbor:thumbor:*:*:*:*:*:*:*:*) is a Python-based open-source HTTP image proxy and on-the-fly thumbnail service by globo.com. Its HTTP loader (thumbor/loaders/http_loader.py) exposes a validate() function that enforces an ALLOWED_SOURCES allowlist by matching a requested image URL's hostname against configured entries. Plain-string entries are wrapped with '^' and '$' anchors but passed directly to re.match() without re.escape(), so Python's regex engine treats every dot character as 'match any character.' CWE-918 (Server-Side Request Forgery) applies precisely: the allowlist check - the sole boundary between Thumbor and arbitrary outbound HTTP requests - is undermined, enabling the service to be directed to fetch from unintended internal or external hosts. The fix, applied in commit 68876715350c6c8f49c324e5515e64908830aed7, wraps plain-string patterns with re.escape() before compilation, restoring literal dot matching.

Know when Thumbor gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L
vuln.today AI 8.2 HIGH

Default ALLOW_UNSAFE_URL=True means no authentication required; SSRF yields high confidentiality via internal resource access with no integrity impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
Low

Lifecycle Timeline

2
Patch available
Jul 31, 2026 - 19:02 EUVD
CVE Published
Jul 31, 2026 - 18:35 cve.org
HIGH 8.2

DescriptionCVE.org

Thumbor is an open-source photo thumbnail service by globo.com. Prior to 7.8.0, the ALLOWED_SOURCES configuration passes plain strings to re.match() without escaping dots, so a hostname differing at dot positions can match the allowlist. This issue is fixed in 7.8.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 24 pypi packages depend on thumbor (24 direct, 0 indirect)

Ecosystem-wide dependent count for version 7.8.0.

Executive ViewAI

Why It Matters

Thumbor image service versions below 7.8.0 contain a critical vulnerability allowing unauthenticated attackers to bypass security controls and access internal networks; publicly available exploit code exists. The default production configuration is vulnerable across most deployments, creating immediate risk of data breach and unauthorized access to internal systems.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
niche open-source image thumbnail service, limited enterprise footprint
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Social Media
2
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

61
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy