# AdsharesBridge: unvalidated wrapTo mints fake wADS

AdsharesBridge's wrapTo lacked validation of native-chain txid/from, letting attacker mint ~120M wADS (~$628K) via fake bridge deposits.

- Payout: Real-world hack
- Severity: high
- Program: AdsharesBridge
- Credited: DeFiHackLabs
- Disclosed: 2026-05-15
- Write-up quality: 7/10
- Original: https://github.com/SunWeb3Sec/DeFiHackLabs/blob/main/src/test/2026-05/AdsharesBridge_exp.sol
- Library page: https://bugbountylibrary.com/r/dhl%3A20260515-adsharesbridge
- Tags: domain:web3 impact:funds-loss impact:integrity kind:incident platform:defihacklabs sev:high tech:evm tech:solidity vuln:access-control vuln:business-logic

**Target:** WrappedADS bridge minter contract (wrapTo)
**Root cause:** The bridge minter's wrapTo function accepted arbitrary (from, txid) parameters without verifying they corresponded to a real native-chain deposit, allowing the minter to mint wADS for nonexistent transactions.
**Steps:**
1. Attacker compromises or controls the bridge minter address `0xF54aF6D4d18C8d61F504E530C127eaa05E011414` (or the minter role).
2. Call `WADS.wrapTo(ATTACKER, 9999993317172301, 0x000300000025ab2b, 0x00030000b8460001)` from the minter.
3. Repeat with different fake txids: `0x00030000b8470001` and `0x00030000b8490001`, amounts 9999993317172301 and 99999994319920782.
4. Total minted: 119999980954265384 wADS to attacker.
**How found:** Likely discovered by auditing the bridge minter's wrapTo function and noticing it did not verify the (from, txid) pair against a trusted oracle or native-chain state, enabling arbitrary minting if the minter key is compromised or if the minter role can be obtained.
**Exploitation:** The attacker used the compromised minter to call wrapTo three times with fabricated native-chain transaction identifiers, minting ~120M wADS (~$628K) without any real deposit. The minted tokens were then likely swapped or bridged for profit.
**Insight:** Bridge minting functions must validate that the provided source-chain transaction hash and sender are unique and confirmed by a trusted oracle; never trust caller-supplied identifiers for mint authorization.
