Arbitrary call with user-controlled target
Curve Finance's assessment for RD-F-013 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
In NG contracts (Vyper 0.3.10), raw_call usage is restricted to WETH wrap/unwrap and ETH transfer to msg.sender — not arbitrary user-controlled targets. Legacy pools used raw_call for ETH transfer callbacks; those pools are effectively abandoned post-July 2023 exploit. No open arbitrary-call pattern in current NG contracts.
Sources #
- GitHubCurveTricryptoOptimizedWETH.vy source inspectionCurveTricryptoOptimizedWETH.vy — raw_call usage inspectionretrieved 2026-04-28
- Explained: The Vyper Bug Hack July 2023 — HalbornHalborn July 2023 exploit analysis — raw_call in legacy poolsretrieved 2026-04-28
Methodology #
Determine whether any contract performs `.call(target, data)` where target and/or data is user-supplied without a target allowlist or selector filter.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol curve-v2 factor RD-F-013 score green collected_at 2026-04-28 19:48:40