<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Scrapy - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/scrapy/</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>Thu, 03 Sep 2026 00:03:28 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/scrapy/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Scrapy S3DownloadHandler Vulnerable to Credential Exposure via Plaintext HTTP</title><link>https://feed.craftedsignal.io/briefs/2026-09-scrapy-s3-plaintext/</link><pubDate>Thu, 03 Sep 2026 00:03:28 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-scrapy-s3-plaintext/</guid><description>The Scrapy S3DownloadHandler defaults to sending signed AWS S3 requests over plaintext HTTP, potentially exposing AWS authorization headers and security tokens to network-based attackers.</description><content:encoded><![CDATA[<p>The Scrapy web crawling framework contains a security vulnerability (CVE-2026-84366) in its <code>S3DownloadHandler</code> component. By default, when a user initiates a request to an <code>s3://</code> URI, the handler constructs an HTTP URL (<code>http://bucket.s3.amazonaws.com/key</code>) unless the <code>request.meta[&quot;is_secure&quot;]</code> flag is explicitly set to <code>True</code>. Because the request is signed with the user's AWS credentials before being dispatched, the authorization headers and security tokens are transmitted over plaintext HTTP. This behavior persists in all versions of Scrapy prior to 2.17.0.</p>
<p>This issue is particularly critical for environments where Scrapy workers operate in untrusted network segments or where traffic is subject to interception. Attackers capable of observing or intercepting network traffic can capture valid AWS credentials or perform full Man-in-the-Middle (MITM) attacks to manipulate data being scraped, potentially leading to downstream data poisoning or influence over the crawl process.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows a network attacker to capture sensitive AWS authorization material, including long-lived IAM keys or temporary session tokens (via <code>X-Amz-Security-Token</code>). Additionally, the ability to perform MITM attacks against the plaintext stream enables the injection of malicious content into the scraped dataset, the corruption of HTTP caches, and the redirection of crawlers to attacker-controlled targets. This vulnerability affects any organization utilizing Scrapy to interact with S3-compatible storage using IAM-based authentication.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Scrapy to version 2.17.0 or later immediately to resolve the default insecure connection behavior.</li>
<li>Audit existing Scrapy spiders for usage of <code>s3://</code> URIs and explicitly set <code>request.meta[&quot;is_secure&quot;] = True</code> for all S3 requests if an immediate upgrade is not feasible.</li>
<li>Implement network-level egress filtering and enforce TLS for all outgoing storage traffic to detect or prevent non-encrypted AWS API communications.</li>
<li>Rotate any AWS IAM credentials that have been used by Scrapy instances operating in environments susceptible to network eavesdropping.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>vulnerability</category><category>cloud</category><category>web-scraping</category></item></channel></rss>