# Adding asymmetric liquidity in _addLiquidity results in fewer LP tokens minted than what should be wanted

yAxis _addLiquidity forwards full stablecoin balances to Curve without ratio checks, so skewed deposits mint fewer LP tokens and enable arbitrage.

- Payout: Audit contest
- Severity: medium
- Program: yAxis
- Disclosed: 2021-11-10
- Write-up quality: 6/10
- Original: https://github.com/code-423n4/2021-09-yaxis-findings/issues/158
- Library page: https://bugbountylibrary.com/r/c4%3A2021-09-yaxis%3AM-04
- Tags: area:web3 domain:web3 impact:funds-loss kind:contest platform:code4rena sev:medium tech:evm tech:solidity technique:source-review vuln:accounting-error vuln:oracle-manipulation

**Target:** NativeStrategyCurve3Crv.sol _addLiquidity / Curve 3Crv pool
**Root cause:** _addLiquidity forwards the entire balances of all three stablecoins to the Curve pool without checking the ratio between them, so a skewed deposit is added at a bad ratio and the stableswap algorithm mints less liquidity than expected.
**Steps:**
1. Contract holds $10K each of USDC, USDT, DAI.
2. Attacker deposits $100K of DAI and is credited $100K of protocol shares.
3. _addLiquidity forwards full balances to Curve, skewing pool ratio to 11:1:1.
4. Curve stableswap mints far less LP than the deposited value warrants.
5. Attacker arbitrages the now-skewed Curve pool for additional profit.
**How found:** Code reading of _addLiquidity at NativeStrategyCurve3Crv.sol L73 noticing full balances are forwarded without ratio validation, then reasoning about the stableswap minting math under a skewed ratio.
**Exploitation:** Attacker deposits a single stablecoin in large quantity to skew the vault's token ratio, receives full share credit, then arbitrages the imbalanced Curve pool against the under-minted LP position.
**Insight:** When a strategy deposits into an AMM, check whether it forwards raw balances vs. proportional amounts; any imbalance-tolerant deposit path lets a depositor skew the pool and capture the minting loss via arbitrage.
