Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
MitM position raises AC:H; no attacker authentication needed; both credential exposure (C:H) and active response tampering (I:H) are realistic impacts with no availability concern.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
5Blast Radius
ecosystem impact- 3 pypi packages depend on scrapy (3 direct, 0 indirect)
Ecosystem-wide dependent count for version 2.17.
DescriptionCVE.org
Scrapy is a high-level web crawling and scraping framework for Python. Prior to 2.17.0, in scrapy/core/downloader/handlers/s3.py, Scrapy's S3DownloadHandler converts an S3-scheme bucket and key request into a plaintext HTTP request to the corresponding S3 endpoint unless request.meta["is_secure"] is explicitly enabled, then signs and sends the plaintext request with configured AWS credentials. A network attacker who can observe traffic between Scrapy and S3 can read the bucket and key path, AWS Authorization header, X-Amz-Security-Token when temporary credentials are used, S3 object contents, and S3 response headers. An active man-in-the-middle attacker can also modify the plaintext S3 response body, status code, and headers before Scrapy processes them, causing scraped-data poisoning, poisoned exports, HTTP cache poisoning when caching is enabled, or influence over later crawl targets through forged redirects or attacker-controlled links. Users making S3-scheme requests with AWS credentials are affected. This issue is fixed in version 2.17.0.
Articles & Coverage 2
AnalysisAI
Scrapy's S3DownloadHandler transmitted s3:// requests - including signed AWS Authorization headers, temporary session tokens, and full S3 object contents - over plaintext HTTP by default in all versions prior to 2.17.0, exposing credentials and data to any network attacker with a man-in-the-middle position. A passive observer on the network path can harvest AWS credentials silently; an active attacker can modify S3 response bodies, status codes, and headers to poison scraped data exports, corrupt HTTP caches, or manipulate subsequent crawl targets through forged redirects. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires the attacker to hold a man-in-the-middle position on the IP network path between the Scrapy process and AWS S3 service endpoints - either through ARP spoofing on a local segment, BGP route manipulation, a compromised network device, or shared infrastructure such as a cloud VPC with insufficient segmentation. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, score 7.4) accurately characterizes this as a network-exploitable, high-impact flaw gated by significant attack complexity - specifically, a privileged network position between Scrapy workers and AWS S3 infrastructure. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade to Scrapy 2.17.0 or later; this is confirmed by the vendor release at https://github.com/scrapy/scrapy/releases/tag/2.17.0 and corroborated by the commit at https://github.com/scrapy/scrapy/commit/9523e1ec8c41fde265a26d14563d178b6f1ad04b, which inverts the default transport scheme to HTTPS. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours: Identify all systems running Scrapy and determine which versions are deployed, particularly those performing S3 downloads via s3:// URLs. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-69647
GHSA-76g3-c3x4-crvx