Mythril Analysis Scope & Methodology
Status: methodology only — not a completed audit report. No executed analysis result, severity assessment, or independent audit assurance is published on this page.
Overview
Mythril is a symbolic execution tool for EVM bytecode that detects security vulnerabilities by exploring execution paths. It is particularly effective at finding integer overflow/underflow, reentrancy, and access control issues.
Proposed V2 Scope
Match the source commit, compiler settings, and deployment before analysis. This starting scope does not establish coverage of the Saving-specific strategy/routes, HyperEVM execution components, or GHO Staking V3. Those require explicitly defined, source-matched scopes.
| Contract | Network | Description |
|---|---|---|
KingsVaultV2.sol |
Ethereum | Synchronous ERC-4626 vault |
KingsVaultV2Async.sol |
Ethereum | Async redeem vault (escrow-based) |
Controller.sol |
Ethereum | UUPS-upgradeable coordinator |
AaveV3Strategy.sol |
Ethereum | Aave V3 lending strategy adapter |
ERC4626Strategy.sol |
Ethereum | Generic ERC-4626 strategy adapter |
HyperStrategy.sol |
Ethereum | CCTP V2 cross-chain strategy (Ethereum-side) |
Review Questions
These are analysis targets, not detected vulnerabilities. Tool classifications and coverage must be recorded from an actual run; a generic Ether-withdrawal or SELFDESTRUCT category does not by itself establish a finding about ERC-20 fee minting or UUPS upgrades.
| Area | Checks to perform |
|---|---|
| Reentrancy | Explore token/strategy callbacks and cross-function accounting changes. Distinguish request/execution bookkeeping from the paths that actually transfer USDC. |
| Arithmetic and pricing | Explore rounding, zero-value cases, fee accounting, and processing-asset updates using the current source's state model. |
| Asset and share authorization | Verify who may transfer assets, mint shares, harvest tokens, and choose recipients. |
| Upgrade authorization | Verify initialization, the actual privileged role, implementation changes, and storage compatibility separately from any SELFDESTRUCT checks. |
| Caller identity | Verify that authorization cannot be bypassed through forwarding or inappropriate reliance on tx.origin. |
| External calls and messages | Check return handling, failure propagation, message provenance, nonce freshness, and attestation validation. |
Areas of Focus
- Share Price Manipulation via Dual-Pricing: Explore whether symbolic execution reveals paths where
_convertToShares/_convertToAssetscan be manipulated through specific deposit/withdraw/confirm orderings to bypassMAX/MINprotection. - Fee Calculation Edge Cases: Resolve the current fee-accounting functions from the pinned source, then test zero supply/assets, losses, book-value changes, configurable rates, and profitable confirmation. The current V2 portal rate is 0%; test both that configuration and permitted rate changes without treating a hypothetical test as a deployed finding.
- Cross-Function Reentrancy (Async Vault): Interactions between
withdraw → executeRedeem → claimthat could exploit escrow state inconsistencies mid-transaction. - Emergency Function Safety: Verify
emergencyRedeem(address receiver)in bothKingsVaultV2andKingsVaultV2Asyncagainst the current ABI and source, including pending/executed requests, reserved assets, repeated calls, and assets still outside the vault. - CCTP Message Replay and Ordering: Verify transmitter nonce enforcement and the strategy's accepted source, sender, and remote-state nonce checks. Distinguish Keeper relay authorization from transmitter callback authorization.
Running
Illustrative commands only; confirm the configuration, compiler inputs, source paths, and supported command options for the pinned tool version:
myth analyze src/vaults/KingsVaultV2Async.sol --solc-json mythril.config.json --execution-timeout 900
myth analyze src/controllers/Controller.sol --solc-json mythril.config.json --execution-timeout 900
Evidence Required for a Published Result
Publish the run date, source commit, compiler/build settings, Mythril version and command, analyzed contracts and exclusions, execution limits, raw output, finding triage, remediation commits, and retest results. Symbolic execution has coverage limits; absence of a reported issue is not proof of safety. A source-level result must not be represented as a deployed-contract audit without a documented source-to-bytecode and configuration match.