<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Thumbor - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/thumbor/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 31 Jul 2026 19:20:49 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/thumbor/feed.xml" rel="self" type="application/rss+xml"/><item><title>Thumbor Path Traversal via URL Decoding Bypass</title><link>https://feed.craftedsignal.io/briefs/2026-07-thumbor-path-traversal/</link><pubDate>Fri, 31 Jul 2026 19:20:49 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-thumbor-path-traversal/</guid><description>Thumbor version 7.7.7 and earlier is vulnerable to arbitrary file read via a path traversal flaw in file_loader.py, where security checks are performed before decoding percent-encoded traversal sequences.</description><content:encoded><![CDATA[<p>Thumbor, an open-source image processing service, contains a path traversal vulnerability (CVE-2026-53502) in its <code>file_loader</code> component. The flaw arises because the application performs security validation - using <code>abspath()</code> and <code>startswith()</code> - on the file path before calling <code>unquote()</code>. Attackers can supply double-percent-encoded traversal sequences, such as <code>%252e%252e</code>, which evade the initial security check by being treated as literal directory names. Once the check passes, <code>unquote()</code> decodes these sequences into standard traversal characters (<code>..</code>), allowing the loader to traverse outside the designated root directory.</p>
<p>This issue specifically impacts configurations where <code>file_loader</code> is used and the watermark or frame filters are enabled. An attacker can leverage this to read arbitrary files from the server's filesystem, including sensitive configuration files or keys, and receive the file contents overlaid as an image if the data can be parsed as an image format. This affects Thumbor versions 7.7.7 and below.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker constructs a malicious URL targeting a Thumbor watermark filter endpoint (e.g., <code>/unsafe/filters:watermark(...)</code>).</li>
<li>Attacker embeds double-encoded path traversal sequences (e.g., <code>%252e%252e</code>) into the watermark image path parameter.</li>
<li>The web server (Tornado) decodes the first layer of encoding, passing <code>%2e%2e</code> to the application logic.</li>
<li>The <code>file_loader</code> receives the path and performs <code>abspath()</code>, which treats the literal <code>%2e%2e</code> as a directory name, causing the <code>startswith(ROOT)</code> security check to return True.</li>
<li>The <code>file_loader</code> identifies the path as non-existent (as the literal directory doesn't exist) and proceeds to call <code>unquote()</code>.</li>
<li>The <code>unquote()</code> function decodes <code>%2e%2e</code> into <code>..</code>, effectively enabling directory traversal.</li>
<li>The application opens the file requested from the filesystem, traversing outside the <code>FILE_LOADER_ROOT_PATH</code>.</li>
<li>The file content is returned to the user, potentially displaying sensitive file data as an image artifact.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in unauthorized arbitrary file read on the host server. This allows attackers to access critical system files, application configuration files, and environment secrets, which may lead to further compromise of the underlying infrastructure or exfiltration of sensitive organizational data.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Thumbor to a version that performs URL decoding prior to filesystem path validation.</li>
<li>Implement strict ingress filtering on web application firewalls to block double-percent-encoded characters (<code>%252e</code>) in query parameters targeting watermark or frame filters.</li>
<li>Deploy the Sigma rule below to detect attempts to inject encoded traversal sequences into the application.</li>
<li>Audit logs for HTTP 200 responses originating from watermark or frame filter endpoints that involve character strings suggestive of path traversal.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>web-application-vulnerability</category><category>hmac-bypass</category><category>image-processing</category><category>cve-2026-53501</category><category>ssrf</category><category>web-application</category><category>input-validation</category></item></channel></rss>