CVE-2026-40072

web3.py affected by SSRF via CCIP Read (EIP-3668) OffchainLookup URL handling

Published Apr 9, 2026 CVSS 4.0 · 1.7 Low EPSS < 1% KEV · Not listed
Description
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.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-5hr4-253g-cpx2 web3.py: SSRF via CCIP Read (EIP-3668) OffchainLookup URL handling
History
Type Values Removed Values Added
First Time appeared Apeworx
Apeworx web3.py
CPEs cpe:2.3:a:apeworx:web3.py:*:*:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:-:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta10:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta11:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta3:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta4:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta5:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta6:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta7:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta8:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:6.0.0:beta9:*:*:*:python:*:*
cpe:2.3:a:apeworx:web3.py:8.0.0:beta1:*:*:*:python:*:*
Vendors & Products Apeworx
Apeworx web3.py
Metrics cvssV3_1

{'score': 7.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N'}

Type Values Removed Values Added
First Time appeared Ethereum
Ethereum web3.py
Vendors & Products Ethereum
Ethereum web3.py
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description 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.
Title web3.py affected by SSRF via CCIP Read (EIP-3668) OffchainLookup URL handling
Weaknesses CWE-918
References
Metrics cvssV4_0

{'score': 1.7, 'vector': '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'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 9, 2026, 7:37 PM
Reserved
Apr 9, 2026, 12:39 AM
Status
Analyzed
Published
Apr 9, 2026, 6:17 PM
Modified
Oct 26, 2026, 10:10 PM