Description
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.
Published: 2026-09-01
Score: 7.4 High
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure and Potential Data Tampering
Action: Patch Now
AI Analysis

Impact

The S3DownloadHandler in Scrapy converts requests to the S3 scheme into plaintext HTTP when an explicit secure flag is not set, leading to the transmission of sensitive information such as bucket names, keys, AWS Authorization headers, and temporary security tokens over an unencrypted channel. This establishes a wide window for attackers to eavesdrop on the request data and subsequently retrieve the requested object contents and response headers. In addition, an active man‑in‑the‑middle attacker can modify the plaintext response body, status code, and headers before Scrapy processes them, enabling data poisoning of the scraped output, corrupting exports, poisoning caches, or steering the crawler through forged redirects or malicious links. The flaw is associated with the weakness CWE-319: Cleartext Transmission of Sensitive Information.

Affected Systems

Users of the Scrapy framework, specifically those employing S3-scheme requests with AWS credentials, are impacted when running a version prior to 2.17.0. The issue is fixed in Scrapy 2.17.0 and later releases.

Risk and Exploitability

With a CVSS score of 7.4, the vulnerability is classified as high severity. Although EPSS data is not available, the absence from the CISA KEV list does not diminish the potential for exploitation; a network attacker who can observe traffic between the crawler and S3 is positioned to acquire confidential credentials and response data. The likelihood is increased in environments where Scrapy is the sole software interacting with S3, making the risk of interception or tampering substantial under typical network conditions.

Generated by OpenCVE AI on September 2, 2026 at 02:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Scrapy to version 2.17.0 or newer, which fixes the plaintext transmission issue.
  • If an upgrade cannot be performed immediately, configure every S3 request by setting request.meta["is_secure"] to True so that Scrapy signs and sends the request over an HTTPS connection.
  • Validate that all outgoing S3 traffic originates from a secure endpoint and that no intermediate proxies or network devices expose plaintext S3 requests to untrusted networks.

Generated by OpenCVE AI on September 2, 2026 at 02:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-76g3-c3x4-crvx Scrapy: S3DownloadHandler sends signed S3 requests over plaintext HTTP by default
History

Wed, 02 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 02 Sep 2026 03:15:00 +0000

Type Values Removed Values Added
First Time appeared Scrapy
Scrapy scrapy
Vendors & Products Scrapy
Scrapy scrapy

Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Scrapy: S3DownloadHandler sends signed S3 requests over plaintext HTTP by default
Weaknesses CWE-319
References
Metrics cvssV3_1

{'score': 7.4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-02T16:02:19.564Z

Reserved: 2026-09-01T16:27:58.129Z

Link: CVE-2026-84366

cve-icon Vulnrichment

Updated: 2026-09-02T13:43:13.416Z

cve-icon NVD

Status : Deferred

Published: 2026-09-01T21:18:47.593

Modified: 2026-09-09T21:09:13.080

Link: CVE-2026-84366

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-02T03:00:13Z

Weaknesses
  • CWE-319

    Cleartext Transmission of Sensitive Information