Skip to content
Latest alertgo-ethereum v1.17.8 security release fixes p2p DoS issues and a STUN-response node crash
0xCERT
All advisories
Medium0xCERT-2026-0225·

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

web3.py: SSRF via CCIP Read (EIP-3668) OffchainLookup URL handling. web3.py implements CCIP Read / OffchainLookup (EIP-3668) by performing HTTP requests to URLs supplied by smart contracts in offchainlookuppayload["urls"].

Vuln-watch · relayed from the GitHub Advisory Database; see Source & attribution below

Affected chainsEthereum

Summary

web3.py implements CCIP Read / OffchainLookup (EIP-3668) by performing HTTP requests to URLs supplied by smart contracts in offchainlookuppayload["urls"]. The implementation uses these contract-supplied URLs directly (after {sender} / {data} template substitution) without any destination validation: - No restriction to https:// (and no opt-in gate for http://) - No hostname or IP allowlist - No blocking of private/reserved IP ranges (loopback, link-local, RFC1918) - No redirect target validation (both requests and aiohttp follow redirects by default) CCIP Read is enabled by default (globalccipreadenabled = True on all providers), meaning any application using web3.

Affected

  • web3 (pip) >= 6.0.0b3, < 7.15.0 — fixed in 7.15.0
  • web3 (pip) = 8.0.0b1 — fixed in 8.0.0b2

Severity

Medium (CVSS 6.9), as rated by the upstream advisory.

Recommended actions

  • Upgrade web3 to 7.15.0 or later
  • Upgrade web3 to 8.0.0b2 or later

Source & attribution

This 0xCERT advisory summarises GHSA-5hr4-253g-cpx2 / CVE-2026-40072 from the GitHub Advisory Database, credited upstream to Nadav0077: https://github.com/advisories/GHSA-5hr4-253g-cpx2. Details may change; refer to the original source for the authoritative record.

OpenPGP-signed. The signed text of this advisory verifies against the 0xCERT key CCC7 D9EC 9415 723D.

Published 2026-04-04 · last updated 2026-10-08

curl -s https://www.0xcert.com/pgp.asc | gpg --import && curl -s https://www.0xcert.com/advisory/0xCERT-2026-0225/signed.txt | gpg --verify