Slither Analysis Scope & Methodology
Status: methodology only — not a completed audit report. This page does not publish an executed analysis result, a security rating, or an assurance that the deployed contracts are safe.
Overview
Slither is a static analysis framework for Solidity developed by Trail of Bits. It detects vulnerabilities, code quality issues, and provides optimization suggestions.
Proposed V2 Scope
The following V2 components are the starting scope for a source-matched analysis. Confirm the exact source commit and deployed implementations before running it. An analysis of GHO Saving must also include its strategy and conversion route; reviewing the shared V2 vault alone does not cover that integration. GHO Staking V3 is outside this page's scope.
| Contract | Network | Description |
|---|---|---|
KingsVaultV2.sol |
Ethereum | Synchronous ERC-4626 vault |
KingsVaultV2Async.sol |
Ethereum | Async redeem vault (escrow-based) |
Controller.sol |
Ethereum | UUPS-upgradeable coordinator (NAV settlement, strategy registry, fee minting) |
AaveV3Strategy.sol |
Ethereum | Aave V3 lending strategy adapter |
ERC4626Strategy.sol |
Ethereum | Generic ERC-4626 strategy adapter (e.g. Morpho) |
HyperStrategy.sol |
Ethereum | CCTP V2 cross-chain strategy (Ethereum-side endpoint) |
HyperCoreAllocator.sol |
HyperEVM | CCTP V2 receiver; internal share accounting |
HyperCoreRouter.sol |
HyperEVM | HyperCore 4-stage asset pipeline |
Review Categories
Select detectors supported by the pinned Slither version and supplement them with manual review. These categories are review questions, not findings or assigned severities.
| Area | Checks to perform |
|---|---|
| Reentrancy and external calls | Trace token/strategy callbacks and state transitions across withdrawal requests, executeRedeem, claims, and emergency redemption. Do not assume every accounting function transfers USDC or that an Ether-transfer detector covers ERC-20 behavior. |
| Token movement | Verify transfer return handling, approvals, caller/source authorization, and allowed recipients. |
| Arithmetic | Check dual-pricing comparisons, precision, rounding, fee calculations, and zero-value cases. |
| Initialization and upgrades | Verify initialization protection, UUPS authorization, implementation locking, and storage compatibility. The effective upgrade role must be confirmed against the selected deployment; the prior Admin/Developer descriptions are not a verified role mapping. |
| Configuration and observability | Check required non-zero inputs, role administration, parameter changes, and emitted events. |
Review Checklist
Configuration and Governance
- Compiler configuration: Record and reproduce the exact compiler version and build settings.
- Events: Verify that material administrative changes can be observed and monitored.
- Privileged keys: Document actual Admin, Guardian, Keeper, and upgrade authority for the deployed V2 components, including any multisig or timelock protections. Do not assume those protections are deployed.
Areas of Focus
- Dual-pricing and rounding: Check the
MAX/MINprice comparison separately from rounding. For ERC-4626 conversions,depositrounds issued shares down,mintrounds required assets up,withdrawrounds required shares up, andredeemrounds returned assets down. Verify these directions against the ERC-4626 security considerations and the exact implementation. - Access control completeness: Verify authorization on each administrative path and Investor gating on V2 user operations against the deployed role model.
- CCTP message validation: Verify transmitter-only authorization on receive callbacks, source-domain/sender validation, and attestation/replay handling. Check Keeper authorization separately on relay entry points such as
completeDivest; do not describe a Keeper relay as a transmitter-only callback. - State consistency in executeRedeem:
_pendingRedeemShares,_claimableShares,_claimableAssets, and_execIdmust be updated atomically to prevent double-claim or skipped-batch scenarios. - Processing asset tracking:
_processingAssetsinHyperStrategymust be decremented correctly by_updateRemoteState()— verify no underflow paths.
Running
Illustrative command only; confirm paths and configuration against the selected source repository before execution:
slither src/ --config-file slither.config.json
Evidence Required for a Published Result
An actual result must include the analysis date, source commit, compiler/build settings, tool version and command, exact scope and exclusions, raw output, triaged findings with rationale, remediation commits, and retest status. It must distinguish source-level analysis from verification of deployed bytecode and configuration. Until that evidence is published, this page must not be cited as a completed audit or a clean bill of health.