delegatecall with user-controlled target
BENQI's assessment for RD-F-012 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
BENQI lending uses Compound V2 delegatecall proxy pattern (Unitroller→Comptroller, QiErc20Delegator→QiErc20Delegate). In QiErc20Delegator._setImplementation(), the implementation address is admin-controlled — not user-supplied. Source inspection confirms delegatecall target is fixed by admin, with no user-controlled path to the delegatecall target.
Sources #
- GitHubQiErc20Delegator.sol — delegatecall target analysisQiErc20Delegator.sol — _setImplementation() function: admin-controlled implementation address, not user-suppliedretrieved 2026-05-16
Methodology #
Determine whether any contract uses `delegatecall` where the target address is or can be user-supplied without an on-chain allowlist.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol benqi factor RD-F-012 score green collected_at 2026-05-16 11:02:12