CVE-2026-84366 json
Scrapy: S3DownloadHandler sends signed S3 requests over plaintext HTTP by default
published 2mo ago modified 2mo ago also EUVD-2026-69647 , GHSA-76g3-c3x4-crvx , PYSEC-2026-3918
- cvss
- 7.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 17%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi scrapy 2.17, 2.17.0
- scrapy scrapy 2.17.0
- python-scrapy Debian 14 2.17.0-1
debian advisories DEBIAN-CVE-2026-84366
Is CVE-2026-84366 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 2mo ago
Exploit prediction
0.25% chance of exploitation in the next 30 days, higher than 17% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
| GitHub | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
| OSV | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | scrapy | <2.17 <2.17.0 |
2.17 2.17.0 |
Affected products
- scrapy scrapy
Classification
- Weakness
-
- CWE-319 Cleartext Transmission of Sensitive Information
References
-
github.com
/scrapy/scrapy/commit/9523e1ec8c41fde265a26d14563d178b6f1ad04b
web
-
github.com
/scrapy/scrapy/security/advisories/GHSA-76g3-c3x4-crvx
web
-
github.com
/scrapy/scrapy/releases/tag/2.17.0
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-84366
advisory
-
github.com
/scrapy/scrapy
package
-
pypi.org
/project/scrapy
package
-
github.com
/advisories/GHSA-76g3-c3x4-crvx
advisory
Sources
- CVE List CVE-2026-84366
- GitHub Advisory GHSA-76g3-c3x4-crvx
- NVD CVE-2026-84366
- OSV PYSEC-2026-3918
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.