CVE-2026-40072 json
web3.py affected by SSRF via CCIP Read (EIP-3668) OffchainLookup URL handling
published 2026-04-04 7 mo ago modified 2026-10-26 13 d ago also CVE-2026-111171 , GHSA-5hr4-253g-cpx2 , PYSEC-2026-3414 , EUVD-2026-21000
- cvss
- 7.2
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 14%
- public exploits
- 0
- none known
Summary
web3.py allows you to interact with the Ethereum blockchain using Python. From 6.0.0b3 to before 7.15.0 and 8.0.0b2, web3.py implements CCIP Read / OffchainLookup (EIP-3668) by performing HTTP requests to URLs supplied by smart contracts in offchain_lookup_payload["urls"]. The implementation uses these contract-supplied URLs directly (after {sender} / {data} template substitution) without any destination validation. CCIP Read is enabled by default (global_ccip_read_enabled = True on all providers), meaning any application using web3.py's .call() method is exposed without explicit opt-in. This results in Server-Side Request Forgery (SSRF) when web3.py is used in backend services, indexers, APIs, or any environment that performs eth_call / .call() against untrusted or user-supplied contract addresses. A malicious contract can force the web3.py process to issue HTTP requests to arbitrary destinations, including internal network services and cloud metadata endpoints. This vulnerability is fixed in 7.15.0 and 8.0.0b2.
Patch / fix
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 7 mo ago
Exploit prediction
0.24% chance of exploitation in the next 30 days, higher than 14% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/ethereum/web3.py/security/advisories/GHSA-5hr4-253g-cpx2 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 1.7 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:U |
| CNA | 4.0 | 1.7 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 7.2 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 7.2 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
| OSV | 3.1 | 7.2 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | web3 | >=6.0.0b3, <7.15.0 >=8.0.0b1, <8.0.0b2 |
7.15.0 8.0.0b2 |
Affected products
- ethereum web3.py
Classification
- Weakness
-
- CWE-918 Server-Side Request Forgery
References
-
github.com
/ethereum/web3.py/commit/b1c57bb0a124359c9902daaefab4d8af7c3c4c1e
web, patch
-
github.com
/ethereum/web3.py/security/advisories/GHSA-5hr4-253g-cpx2
web, exploit, mitigation, vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-40072
advisory
-
github.com
/ethereum/web3.py
package
-
pypi.org
/project/web3
package
-
github.com
/advisories/GHSA-5hr4-253g-cpx2
advisory
Sources
- CVE List CVE-2026-40072
- GitHub Advisory GHSA-5hr4-253g-cpx2
- NVD CVE-2026-40072
- OSV PYSEC-2026-3414
Fencer Vulns 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.