# Redemption value of synths can be manipulated to drain VaderPool of all native assets

Synth mint/burn pricing derived from manipulable pool reserves lets an attacker flashloan-swap to inflate nativeAsset value, mint cheap synths, reverse the swap, and burn for profit.

- Payout: Audit contest
- Severity: high
- Program: Vader Protocol
- Found by: TomFrenchBlockchain
- Disclosed: 2022-02-10
- Write-up quality: 7/10
- Original: https://github.com/code-423n4/2021-11-vader-findings/issues/3
- Library page: https://bugbountylibrary.com/r/c4%3A2021-11-vader%3AH-02
- Tags: area:web3 domain:web3 impact:funds-loss kind:contest platform:code4rena sev:high tech:evm tech:solidity technique:chained technique:source-review vuln:flash-loan vuln:oracle-manipulation

**Target:** VaderPoolV2.mintSynth / synth redemption pricing
**Root cause:** mintSynth and synth burn value nativeAsset using the pool's spot reserves, which are flashloan-manipulable, rather than a manipulation-resistant oracle.
**Steps:**
1. Flashloan a large amount of foreignAsset and sell it into VaderPool, inflating the pool's implied nativeAsset price.
2. Call `VaderPool.mintSynth` with a small amount of nativeAsset; inflated price yields a huge synth amount.
3. Buy back the foreignAsset from the pool to restore (or suppress) nativeAsset price.
4. Burn the synths; low nativeAsset price requires far more nativeAsset payout than was spent minting.
5. Repay flashloan, keep the extracted nativeAsset; repeat while profitable.
**How found:** Code review of mintSynth noting its exchange rate is computed from pool reserves, which are known to be flashloan-manipulable as in UniswapV2.
**Exploitation:** Attacker flashloans foreignAsset, dumps it to skew reserves, mints synths at the inflated nativeAsset rate, reverses the swap to crash nativeAsset price, then burns synths for a large nativeAsset payout, netting the difference minus flashloan and swap fees.
**Insight:** Any mint/burn/redemption path that prices an asset off AMM spot reserves (not just swaps) is a flashloan oracle-manipulation target; check mintSynth-style functions, not only swap outputs.
