uups-checker 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitmodules +6 -0
- package/AIFI_AUDIT.md +220 -0
- package/ALL_AUDITS_SUMMARY.md +366 -0
- package/ALPHA_PROXY_CRITICAL_FINDING.md +136 -0
- package/ALPHA_PROXY_FINAL_ANALYSIS.md +213 -0
- package/ALPHA_PROXY_FINAL_VERDICT.md +233 -0
- package/ALPHA_PROXY_SELFDESTRUCT_EXPLOIT.md +161 -0
- package/ARIA-foundry-test.txt +9 -0
- package/ARIA-mythril-analysis.txt +20 -0
- package/ARIA-slither-analysis.txt +38 -0
- package/ARIA_AI_SECURITY_AUDIT.md +290 -0
- package/ARIA_VERIFIED_AUDIT.md +259 -0
- package/ARIA_VERIFIED_slither.txt +76 -0
- package/ARIVA_source.txt +1 -0
- package/ARK_AUDIT.md +349 -0
- package/BANANA_AUDIT.md +365 -0
- package/BAS_AUDIT.md +451 -0
- package/BAS_TOKEN_AUDIT.md +235 -0
- package/BCE_EXPLOIT_ANALYSIS.md +165 -0
- package/BEEFY_BNB_CHAIN_ANALYSIS.md +488 -0
- package/BEEFY_MONAD_ANALYSIS.md +239 -0
- package/BEEFY_STAKING_ANALYSIS.md +136 -0
- package/BEEFY_XVS_WBNB_ACTUAL_FINDINGS.md +223 -0
- package/BEEFY_XVS_WBNB_CRITICAL_FINDINGS.md +269 -0
- package/BLOCKSEC_ATTACK_KNOWLEDGE_BASE.md +771 -0
- package/BRISE_ANALYSIS.txt +31 -0
- package/BRISE_BSC_DAPPS.txt +68 -0
- package/BRISE_EXPLOITS_FOUND.md +98 -0
- package/BRISE_REAL_EXPLOITS.md +115 -0
- package/BRISE_WHITEHAT_REPORT.md +162 -0
- package/BRISEstake_Analysis.txt +95 -0
- package/BSCSLOCKTOKEN_CRITICAL_FINDING.md +240 -0
- package/BSW_BISWAP_SECURITY_AUDIT.md +330 -0
- package/BTCST_FINAL_VERDICT.md +319 -0
- package/BTCST_MINING_REBASE_ANALYSIS.md +229 -0
- package/BTCST_ROUNDING_DEEP_DIVE.md +293 -0
- package/BTCST_ROUNDING_FINAL_VERDICT.md +9 -0
- package/BTCST_SECURITY_ANALYSIS.md +391 -0
- package/BTR_AUDIT.md +210 -0
- package/BeamBridge-analysis.md +226 -0
- package/BeamToken-analysis.md +201 -0
- package/BitgertSwap_Investigation.txt +107 -0
- package/CEEK_STAKING_ANALYSIS.md +0 -0
- package/CHAINBASE_AUDIT.md +422 -0
- package/COMPLETE_AUDIT_SUMMARY.md +342 -0
- package/CORRECTED_ANALYSIS.txt +115 -0
- package/DBXEN_COMPARISON_SUMMARY.md +232 -0
- package/DBXEN_EXPLOIT_ANALYSIS.md +530 -0
- package/DOPFairLaunch_raw.json +29 -0
- package/DOPFairLaunch_source.txt +0 -0
- package/DOP_BRIDGE_FINAL_ANALYSIS.txt +86 -0
- package/DOP_BUSD_LP_ANALYSIS.txt +44 -0
- package/DOP_FAIRLAUNCH_ANALYSIS.txt +61 -0
- package/DOP_FAIRLAUNCH_FINAL_VERDICT.txt +113 -0
- package/DOP_STAKING_CONTRACT_ANALYSIS.txt +67 -0
- package/DSYNC_ECOSYSTEM_ANALYSIS.md +221 -0
- package/DSyncStaking-exploit-analysis.md +153 -0
- package/DSyncVault-analysis.md +120 -0
- package/DUSD_PROXY_AUDIT.md +407 -0
- package/DXSALE_LOCK_AUDIT.md +0 -0
- package/DXSaleLock_bytecode.txt +1 -0
- package/ECHIDNA_QUICK_START.md +101 -0
- package/ELEPHANT_ECOSYSTEM_AUDIT_PLAN.md +159 -0
- package/ELEPHANT_ECOSYSTEM_COMPREHENSIVE_AUDIT.md +427 -0
- package/ELEPHANT_SECURITY_ANALYSIS.md +209 -0
- package/ELEPHANT_VULNERABILITIES_EXPLAINED.md +455 -0
- package/EXPLOIT_FIX.md +300 -0
- package/EXPLOIT_INSTRUCTIONS.md +273 -0
- package/EXPLOIT_SUMMARY.md +285 -0
- package/EXPLOIT_SUMMARY.txt +175 -0
- package/FALCON_FINANCE_AUDIT.md +258 -0
- package/FANDOM_AUDIT.md +359 -0
- package/FEE_ON_TRANSFER_ANALYSIS.md +228 -0
- package/FINAL_AUDIT_REPORT.md +0 -0
- package/FOLIO_PROXY_AUDIT.md +299 -0
- package/FOT_EXPLOIT_RESULTS.txt +110 -0
- package/FOT_TOKENS_AUDITED.md +103 -0
- package/HEGIC-mythril-analysis.txt +39 -0
- package/HEGIC_COMPLETE_ANALYSIS.md +343 -0
- package/HOTCROSS_SWAP_EXPLOIT_ANALYSIS.md +123 -0
- package/ICECREAMSWAP_EXPLOITS.md +259 -0
- package/IMMUNEFI_REPORT.md +314 -0
- package/KCCPAD_EXPLOIT_GUIDE.md +285 -0
- package/KEL_CEL_EXPLOIT_ANALYSIS.md +0 -0
- package/KOGE_AUDIT.md +328 -0
- package/LENDFLARE_ANALYSIS.md +239 -0
- package/LENDFLARE_ECHIDNA_GUIDE.md +356 -0
- package/LENDFLARE_EXPLOIT_INSTRUCTIONS.md +297 -0
- package/LENDFLARE_EXPLOIT_SUMMARY.md +292 -0
- package/LENDFLARE_FLASHLOAN_GUIDE.md +383 -0
- package/LENDFLARE_FUZZING_RESULTS.md +252 -0
- package/LENDFLARE_HONEYPOT_BYPASS_ANALYSIS.md +420 -0
- package/LENDFLARE_MANUAL_FUZZING.md +324 -0
- package/LENDFLARE_MYTHRIL_ANALYSIS.md +339 -0
- package/LENDFLARE_V3_BYPASS.md +296 -0
- package/LFTDECOMPILE.txt +14478 -0
- package/LFT_ACCOUNTING_ANALYSIS.md +0 -0
- package/LFT_ACCOUNTING_BUG_ANALYSIS.md +426 -0
- package/LFT_BACKDOOR_DEEP_DIVE.md +0 -0
- package/LFT_CRITICAL_EXPLOIT_CONFIRMED.md +428 -0
- package/LFT_EXPLOIT_VISUAL.md +253 -0
- package/LFT_QUICK_SUMMARY.md +124 -0
- package/LFT_REVERSE_EXPLOIT_ANALYSIS.md +521 -0
- package/MGO_AUDIT_REPORT.md +420 -0
- package/MYTHRIL_FINAL_REPORT.md +306 -0
- package/MYTHRIL_SLITHER_SUMMARY.md +244 -0
- package/NETX_MIGRATION_AUDIT.md +0 -0
- package/NPM_PUBLISH_GUIDE.md +0 -0
- package/NRV_CRITICAL_EXPLOIT.txt +143 -0
- package/NetX_Analysis.txt +76 -0
- package/NetX_Migration_bytecode.txt +1 -0
- package/NetX_Migration_source.txt +0 -0
- package/NetX_Token_source.txt +0 -0
- package/NetxWhitehatRescue +22 -0
- package/OILER_ATTACK_VISUAL.md +351 -0
- package/OILER_BLOCKSEC_TEST_RESULTS.md +421 -0
- package/OILER_DEEP_ANALYSIS.md +212 -0
- package/OILER_FINAL_EXPLOIT_REPORT.md +241 -0
- package/OILER_FINAL_VERDICT.md +339 -0
- package/OILER_REENTRANCY_EXPLAINED.md +638 -0
- package/OILER_REENTRANCY_FINAL_SUMMARY.md +391 -0
- package/OILER_REENTRANCY_REALITY_CHECK.md +393 -0
- package/OILER_REENTRANCY_STEP_BY_STEP.md +597 -0
- package/OILER_STAKING_MAINNET_ANALYSIS.md +366 -0
- package/OILER_STAKING_SECURITY_ANALYSIS.md +409 -0
- package/PANCAKESWAP_UNDERFLOW_HUNTING.md +317 -0
- package/POLS_MULTICHAIN_AUDIT.md +0 -0
- package/POSI_STAKING_AUDIT.md +0 -0
- package/PROXY2_SECURITY_ANALYSIS.md +0 -0
- package/Proxy2TACS +29748 -0
- package/QUICK_START.md +240 -0
- package/RAMP_SECURITY_ANALYSIS.md +0 -0
- package/README.md +238 -0
- package/REAUDIT_MASTER_LIST.txt +15 -0
- package/RING_analysis.txt +212 -0
- package/RPC +4 -0
- package/RULES.txt +20 -0
- package/SIREN_AUDIT.md +186 -0
- package/SYNC_EXPLOIT_README.md +0 -0
- package/SYNC_TOKEN_EXPLOIT_REPORT.md +224 -0
- package/TLM_raw.html +0 -0
- package/TLM_raw.txt +0 -0
- package/TLM_response.json +1 -0
- package/TRADOOR_AUDIT.md +253 -0
- package/TRUNK_AUDIT.md +285 -0
- package/UNIBASE_AUDIT.md +241 -0
- package/UNLOCK_ANALYSIS.md +0 -0
- package/UNLOCK_EXPLOIT.md +49 -0
- package/UNLOCK_EXPLOIT_ANALYSIS.md +0 -0
- package/UPS +232 -0
- package/UUPSCHECKER +208 -0
- package/VAULT_PROXY_AUDIT.md +457 -0
- package/VAULT_PROXY_FINAL_VERDICT.md +0 -0
- package/VERIFIED_EXPLOITS_FINAL.txt +146 -0
- package/WKEYDAO2_AUDIT.md +245 -0
- package/WSG_AUDIT.md +0 -0
- package/XFI_DEEP_ANALYSIS.md +327 -0
- package/YOOSHI_EXPLOIT_GUIDE.md +119 -0
- package/YSDAO_EXPLOIT_GUIDE.md +0 -0
- package/agent-4-bundle.md +22490 -0
- package/alpha-proxy-echidna.txt +1 -0
- package/alpha-proxy-fuzz-results.txt +81 -0
- package/alpha-proxy-mythril.txt +2 -0
- package/analyze-btcst-farm.js +54 -0
- package/analyze-dxsale-lock.js +75 -0
- package/analyze-elephant.js +69 -0
- package/analyze-fara-rewards.js +109 -0
- package/analyze-fara-storage.js +83 -0
- package/analyze-lft-transaction.js +158 -0
- package/analyze-lock-bytecode.js +59 -0
- package/analyze-shegic.js +0 -0
- package/analyze-staking-abi.js +0 -0
- package/analyze-sxp.js +57 -0
- package/analyze-tlm.js +76 -0
- package/analyze-trumpet.js +98 -0
- package/analyze-unlimited-nft.js +108 -0
- package/analyze_elephant.sh +27 -0
- package/analyze_vault.sh +32 -0
- package/aria-bytecode.txt +1 -0
- package/aria_response.json +1 -0
- package/ark_temp/README.md +66 -0
- package/ark_temp/lib/forge-std/.gitattributes +1 -0
- package/ark_temp/lib/forge-std/.github/CODEOWNERS +1 -0
- package/ark_temp/lib/forge-std/.github/dependabot.yml +6 -0
- package/ark_temp/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/ark_temp/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/ark_temp/lib/forge-std/CONTRIBUTING.md +193 -0
- package/ark_temp/lib/forge-std/LICENSE-APACHE +203 -0
- package/ark_temp/lib/forge-std/LICENSE-MIT +25 -0
- package/ark_temp/lib/forge-std/README.md +314 -0
- package/ark_temp/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/ark_temp/lib/forge-std/package.json +16 -0
- package/ark_temp/lib/forge-std/scripts/vm.py +636 -0
- package/audits/AiFi-security-audit-20260326.md +499 -0
- package/audits/BasedAI-Brains-security-audit-20260324.md +651 -0
- package/audits/BinanceAlphaWallet-pashov-ai-audit-report-20260324-170000.md +362 -0
- package/audits/DGToken-security-audit-20260324.md +376 -0
- package/audits/DSyncStaking-audit-part1.md +161 -0
- package/audits/DSyncStaking-security-audit-20260324.md +547 -0
- package/audits/DecompiledERC20-security-audit-20260325.md +397 -0
- package/audits/DegenVC-security-audit-20260324.md +585 -0
- package/audits/DelreyInu-security-audit-20260324.md +463 -0
- package/audits/DestraNetwork-security-audit-20260324.md +705 -0
- package/audits/DomiToken-security-audit-20260324.md +514 -0
- package/audits/LendFlareToken-security-audit-20260325.md +197 -0
- package/audits/LockReleaseTokenPool-security-audit-20260324.md +482 -0
- package/audits/MOG-pashov-ai-audit-report-20260324-164900.md +229 -0
- package/audits/PAALAI-security-audit-20260324.md +475 -0
- package/audits/PAR-security-audit-20260325.md +311 -0
- package/audits/PepeCoinStaking-security-audit-20260324.md +358 -0
- package/audits/StakingPool-security-audit-20260324.md +517 -0
- package/audits/SyncToken-security-audit-20260324.md +778 -0
- package/audits/UndeadToken-decompiled-security-audit-20260324.md +485 -0
- package/audits/UnknownToken-decompiled-security-audit-20260324.md +647 -0
- package/audits/XFIStaking-security-audit-20260324.md +682 -0
- package/audits/Xfinance-security-audit-20260324.md +463 -0
- package/audits/basedAIFarm-security-audit-20260324.md +330 -0
- package/audits/pepeCoin-security-audit-20260324.md +462 -0
- package/bin/ups +232 -0
- package/binance-wallet-exploit/.env.example +2 -0
- package/binance-wallet-exploit/EXECUTIVE_SUMMARY.md +272 -0
- package/binance-wallet-exploit/EXPLOIT_SUMMARY.md +104 -0
- package/binance-wallet-exploit/FINAL_ANALYSIS.md +326 -0
- package/binance-wallet-exploit/FLASHLOAN_ATTACK.md +292 -0
- package/binance-wallet-exploit/HONEYPOT_REPORT.md +526 -0
- package/binance-wallet-exploit/INVESTIGATION_COMPLETE.md +362 -0
- package/binance-wallet-exploit/LENDFLARE_EXPLOIT.md +219 -0
- package/binance-wallet-exploit/LENDFLARE_FINAL_ATTACK.md +307 -0
- package/binance-wallet-exploit/LENDFLARE_REAL_EXPLOIT.md +286 -0
- package/binance-wallet-exploit/LENDFLARE_RUGPULL.md +269 -0
- package/binance-wallet-exploit/LFT_ANALYSIS.md +206 -0
- package/binance-wallet-exploit/QUICK_START.md +75 -0
- package/binance-wallet-exploit/README.md +195 -0
- package/binance-wallet-exploit/REAL_TX_EXPLOIT_ANALYSIS.md +271 -0
- package/binance-wallet-exploit/REMIX_INSTRUCTIONS.md +223 -0
- package/binance-wallet-exploit/TEST_RESULTS.md +203 -0
- package/binance-wallet-exploit/cache/solidity-files-cache.json +1 -0
- package/binance-wallet-exploit/cache/test-failures +1 -0
- package/binance-wallet-exploit/lib/forge-std/.gitattributes +1 -0
- package/binance-wallet-exploit/lib/forge-std/.github/CODEOWNERS +1 -0
- package/binance-wallet-exploit/lib/forge-std/.github/dependabot.yml +6 -0
- package/binance-wallet-exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/binance-wallet-exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/binance-wallet-exploit/lib/forge-std/CONTRIBUTING.md +193 -0
- package/binance-wallet-exploit/lib/forge-std/LICENSE-APACHE +203 -0
- package/binance-wallet-exploit/lib/forge-std/LICENSE-MIT +25 -0
- package/binance-wallet-exploit/lib/forge-std/README.md +314 -0
- package/binance-wallet-exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/binance-wallet-exploit/lib/forge-std/package.json +16 -0
- package/binance-wallet-exploit/lib/forge-std/scripts/vm.py +636 -0
- package/binance-wallet-exploit/out/build-info/1e9aa7e86cf56962.json +1 -0
- package/binance-wallet-exploit/out/build-info/6f56f10e9d7b56eb.json +1 -0
- package/binance-wallet-exploit/out/build-info/7edba961ff697a24.json +1 -0
- package/binance-wallet-exploit/out/build-info/8c27fe3efea2f2e7.json +1 -0
- package/binance-wallet-exploit/out/build-info/978b680daffec63a.json +1 -0
- package/binance-wallet-exploit/out/build-info/9806b900b5672d0c.json +1 -0
- package/binance-wallet-exploit/out/build-info/b4b9ff36e9b3fc27.json +1 -0
- package/binance-wallet-exploit/out/build-info/b6f4df9ae05c0812.json +1 -0
- package/binance-wallet-exploit/out/build-info/c88dbc86551f7b5c.json +1 -0
- package/binance-wallet-exploit/out/build-info/e9657504010623db.json +1 -0
- package/cache/fuzz/failures/ARIAVerifiedFuzzTest/testFuzz_ApprovalRaceCondition +1 -0
- package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_DirectTransferExploit +1 -0
- package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_LargeSwapDrain +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_ApprovalExploit +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_BalanceManipulation +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_RateManipulation +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_StorageManipulation +1 -0
- package/cache/fuzz/failures/PARFuzzTest/testFuzz_OverflowTransfer +1 -0
- package/cache/fuzz/failures/PARFuzzTest/testFuzz_Transfer +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_FrontrunAddfunds +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RewardOverflow +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RoundingExploit +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_WithdrawLimit +1 -0
- package/cache/solidity-files-cache.json +1 -0
- package/cache/test-failures +1 -0
- package/calculate-elephant-flashloan.js +195 -0
- package/check-address-approval.js +112 -0
- package/check-alpha-proxy.js +42 -0
- package/check-arbitrage.js +155 -0
- package/check-aria-token.js +47 -0
- package/check-ark.sh +20 -0
- package/check-btcst-mining.js +75 -0
- package/check-btcst-pools.js +163 -0
- package/check-btcst.js +88 -0
- package/check-caller.js +26 -0
- package/check-ceek-lp.js +73 -0
- package/check-ceek.js +47 -0
- package/check-dxsale-address.js +35 -0
- package/check-fara-exploit-timing.js +56 -0
- package/check-fara-real-exploit.js +73 -0
- package/check-flashloan-limits.js +129 -0
- package/check-kel-cel-pool.js +91 -0
- package/check-lax-staking.js +41 -0
- package/check-lendflare.js +165 -0
- package/check-lft-accounting.js +109 -0
- package/check-lft-roles.js +165 -0
- package/check-lock-time.js +47 -0
- package/check-min-stake.js +73 -0
- package/check-mystery-contract.js +52 -0
- package/check-next-token.js +50 -0
- package/check-nora-lock.js +67 -0
- package/check-oiler-approvals.js +116 -0
- package/check-oiler-proxy.js +73 -0
- package/check-oiler-staking.js +117 -0
- package/check-proxy-simple.js +71 -0
- package/check-recent-stakes.js +54 -0
- package/check-shegic-holdings.js +67 -0
- package/check-snowcrash-ecosystem.js +83 -0
- package/check-sync-lp.js +97 -0
- package/check-sync-stake.js +42 -0
- package/check-tlm.js +37 -0
- package/check-token-pools.js +146 -0
- package/check-trunk-depeg.js +181 -0
- package/check-tusd-decimals.js +58 -0
- package/check-user-storage-deep.js +81 -0
- package/check-welephant-pools.js +130 -0
- package/check-xfi-pool.js +75 -0
- package/check-zypher.js +32 -0
- package/check_proxy.sh +36 -0
- package/compare-tlm-chains.js +90 -0
- package/contract_0x05f2.html +6025 -0
- package/contract_0x3720.html +6361 -0
- package/contract_0x928e.html +5606 -0
- package/contract_0xc42d.html +5304 -0
- package/contract_page.html +5789 -0
- package/decode-stake-tx.js +50 -0
- package/deep-analyze-lock.js +82 -0
- package/dune_uups_proxy_query.sql +42 -0
- package/dune_uups_vulnerable_query.sql +0 -0
- package/echidna/alpha-proxy.yaml +14 -0
- package/echidna/elephant.yaml +7 -0
- package/echidna/lendflare.yaml +42 -0
- package/echidna.config.yaml +12 -0
- package/elephant_raw.json +1 -0
- package/eps_raw.json +1 -0
- package/exploit/.github/workflows/test.yml +38 -0
- package/exploit/.gitmodules +3 -0
- package/exploit/README.md +66 -0
- package/exploit/foundry.lock +8 -0
- package/exploit/lib/forge-std/.gitattributes +1 -0
- package/exploit/lib/forge-std/.github/CODEOWNERS +1 -0
- package/exploit/lib/forge-std/.github/dependabot.yml +6 -0
- package/exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/exploit/lib/forge-std/CONTRIBUTING.md +193 -0
- package/exploit/lib/forge-std/LICENSE-APACHE +203 -0
- package/exploit/lib/forge-std/LICENSE-MIT +25 -0
- package/exploit/lib/forge-std/README.md +314 -0
- package/exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/exploit/lib/forge-std/package.json +16 -0
- package/exploit/lib/forge-std/scripts/vm.py +636 -0
- package/exploit_analysis.txt +51 -0
- package/extract_contract.py +21 -0
- package/extract_elephant_contracts.py +24 -0
- package/fara-staking-bytecode.txt +1 -0
- package/fara-staking-raw.txt +1 -0
- package/fetch-aria.js +46 -0
- package/fetch-contract.js +50 -0
- package/fetch-shegic-source.js +86 -0
- package/fetch-snowcrash.js +44 -0
- package/fetch-staking-source.js +53 -0
- package/fetch-tlm.js +60 -0
- package/fetch_elephant_source.py +32 -0
- package/find-ceek-staking.js +21 -0
- package/find-exploit-tx.js +88 -0
- package/find-oiler-holders.js +100 -0
- package/find-tlm-holder.js +36 -0
- package/find-vulnerable-fund.js +94 -0
- package/foundry.lock +8 -0
- package/fuzz-all.sh +53 -0
- package/get-aria-contract.py +40 -0
- package/get-lft-holders.js +89 -0
- package/get-tlm-source.sh +8 -0
- package/harvest_txs.json +1 -0
- package/lft-bytecode-raw.txt +1 -0
- package/lft-bytecode.json +1 -0
- package/lft-impl.bin +1 -0
- package/lft-implementation-bytecode.txt +1 -0
- package/lib/forge-std/.gitattributes +1 -0
- package/lib/forge-std/.github/CODEOWNERS +1 -0
- package/lib/forge-std/.github/dependabot.yml +6 -0
- package/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/lib/forge-std/CONTRIBUTING.md +193 -0
- package/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/forge-std/README.md +314 -0
- package/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/lib/forge-std/package.json +16 -0
- package/lib/forge-std/scripts/vm.py +636 -0
- package/lib/openzeppelin-contracts/.changeset/config.json +12 -0
- package/lib/openzeppelin-contracts/.codecov.yml +12 -0
- package/lib/openzeppelin-contracts/.editorconfig +21 -0
- package/lib/openzeppelin-contracts/.eslintrc +20 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
- package/lib/openzeppelin-contracts/.github/actions/setup/action.yml +21 -0
- package/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
- package/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
- package/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
- package/lib/openzeppelin-contracts/.github/workflows/checks.yml +118 -0
- package/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
- package/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
- package/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +214 -0
- package/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +34 -0
- package/lib/openzeppelin-contracts/.gitmodules +7 -0
- package/lib/openzeppelin-contracts/.mocharc.js +4 -0
- package/lib/openzeppelin-contracts/.prettierrc +15 -0
- package/lib/openzeppelin-contracts/.solcover.js +13 -0
- package/lib/openzeppelin-contracts/CHANGELOG.md +972 -0
- package/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
- package/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
- package/lib/openzeppelin-contracts/GUIDELINES.md +148 -0
- package/lib/openzeppelin-contracts/LICENSE +22 -0
- package/lib/openzeppelin-contracts/README.md +107 -0
- package/lib/openzeppelin-contracts/RELEASING.md +45 -0
- package/lib/openzeppelin-contracts/SECURITY.md +42 -0
- package/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
- package/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/README.md +17 -0
- package/lib/openzeppelin-contracts/certora/Makefile +54 -0
- package/lib/openzeppelin-contracts/certora/README.md +60 -0
- package/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch +97 -0
- package/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/run.js +160 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +119 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
- package/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +300 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20.spec +352 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +55 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC721.spec +679 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +333 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +246 -0
- package/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable.spec +77 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
- package/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
- package/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +274 -0
- package/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +8 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +17 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs.json +86 -0
- package/lib/openzeppelin-contracts/contracts/access/README.adoc +43 -0
- package/lib/openzeppelin-contracts/contracts/finance/README.adoc +14 -0
- package/lib/openzeppelin-contracts/contracts/governance/README.adoc +167 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +82 -0
- package/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
- package/lib/openzeppelin-contracts/contracts/package.json +32 -0
- package/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +41 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
- package/lib/openzeppelin-contracts/contracts/utils/README.adoc +88 -0
- package/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
- package/lib/openzeppelin-contracts/docs/README.md +16 -0
- package/lib/openzeppelin-contracts/docs/antora.yml +7 -0
- package/lib/openzeppelin-contracts/docs/config.js +21 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +204 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +48 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +145 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +71 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +13 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +240 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +31 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +185 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +15 -0
- package/lib/openzeppelin-contracts/docs/templates/contract.hbs +111 -0
- package/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
- package/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
- package/lib/openzeppelin-contracts/docs/templates/properties.js +64 -0
- package/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
- package/lib/openzeppelin-contracts/hardhat/env-contract.js +25 -0
- package/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
- package/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
- package/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
- package/lib/openzeppelin-contracts/hardhat.config.js +131 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
- package/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
- package/lib/openzeppelin-contracts/logo.svg +15 -0
- package/lib/openzeppelin-contracts/netlify.toml +3 -0
- package/lib/openzeppelin-contracts/package-lock.json +16544 -0
- package/lib/openzeppelin-contracts/package.json +96 -0
- package/lib/openzeppelin-contracts/remappings.txt +1 -0
- package/lib/openzeppelin-contracts/renovate.json +4 -0
- package/lib/openzeppelin-contracts/requirements.txt +1 -0
- package/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +20 -0
- package/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
- package/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +38 -0
- package/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
- package/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
- package/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
- package/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +247 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +17 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +146 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +283 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +126 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +78 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
- package/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
- package/lib/openzeppelin-contracts/scripts/prepack.sh +23 -0
- package/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
- package/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
- package/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
- package/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
- package/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +84 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +5 -0
- package/lib/openzeppelin-contracts/scripts/update-docs-branch.js +65 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +47 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +360 -0
- package/lib/openzeppelin-contracts/slither.config.json +5 -0
- package/lib/openzeppelin-contracts/solhint.config.js +20 -0
- package/mythril-lft-output.txt +1 -0
- package/mythril-lft-symbolic.txt +18 -0
- package/mythril-lft.sh +20 -0
- package/mythril-symbolic-output.txt +1 -0
- package/mythril-symbolic.sh +42 -0
- package/out/build-info/0026b78428192979.json +1 -0
- package/out/build-info/03c4fc3b88486eba.json +1 -0
- package/out/build-info/0540afa9b9a5c5a6.json +1 -0
- package/out/build-info/081932f505bc08b9.json +1 -0
- package/out/build-info/0da104ba0d6642d5.json +1 -0
- package/out/build-info/197281971dbb5f23.json +1 -0
- package/out/build-info/197e7e332832a232.json +1 -0
- package/out/build-info/1a1cab9136eb5f94.json +1 -0
- package/out/build-info/1b320204eb162aa2.json +1 -0
- package/out/build-info/1e03f94398052674.json +1 -0
- package/out/build-info/22ac085949602937.json +1 -0
- package/out/build-info/234ef37453a9fa64.json +1 -0
- package/out/build-info/2447db7b1878fa8e.json +1 -0
- package/out/build-info/25568daeb484f5ff.json +1 -0
- package/out/build-info/27465853244c49ce.json +1 -0
- package/out/build-info/2c57a9e0f087453b.json +1 -0
- package/out/build-info/3c62ae7de8da68c4.json +1 -0
- package/out/build-info/3e771ae109e97bb3.json +1 -0
- package/out/build-info/460499bc0a3465c4.json +1 -0
- package/out/build-info/47ce37e50a4f115e.json +1 -0
- package/out/build-info/4fcce5c63cf427d6.json +1 -0
- package/out/build-info/4fd0a53fe63fddbb.json +1 -0
- package/out/build-info/50f1247db9d769cc.json +1 -0
- package/out/build-info/5317d0181a7a5e02.json +1 -0
- package/out/build-info/594df509275ceb5b.json +1 -0
- package/out/build-info/61983ac3f6141719.json +1 -0
- package/out/build-info/638c4548307122fe.json +1 -0
- package/out/build-info/67c2c43bdb7c0ded.json +1 -0
- package/out/build-info/777f42643aad37b7.json +1 -0
- package/out/build-info/7d7856f19e845354.json +1 -0
- package/out/build-info/83976260b6f71e94.json +1 -0
- package/out/build-info/83c23882000b963d.json +1 -0
- package/out/build-info/84b2cce8f70b36be.json +1 -0
- package/out/build-info/8bc13d31d7c3206a.json +1 -0
- package/out/build-info/8e183bd4d9d8cf88.json +1 -0
- package/out/build-info/94bfe1e7cafa8ff5.json +1 -0
- package/out/build-info/99ec7d5e8d8ff360.json +1 -0
- package/out/build-info/9ac044b29daa7d5e.json +1 -0
- package/out/build-info/9b203227ff5d2e63.json +1 -0
- package/out/build-info/9d18c5872c4282dd.json +1 -0
- package/out/build-info/9f77f04f33baf9a3.json +1 -0
- package/out/build-info/a6e1caf974787982.json +1 -0
- package/out/build-info/a94b6348867a62d6.json +1 -0
- package/out/build-info/ad93721947a8b195.json +1 -0
- package/out/build-info/b42daddb5aa4b19f.json +1 -0
- package/out/build-info/bf13512ae899f7e8.json +1 -0
- package/out/build-info/c39f86c20a548c4a.json +1 -0
- package/out/build-info/cb12bb975a2f4e65.json +1 -0
- package/out/build-info/d0c6788fadc2aa60.json +1 -0
- package/out/build-info/d2726bf94ed5b845.json +1 -0
- package/out/build-info/d4eb00da50cce5cb.json +1 -0
- package/out/build-info/db931924a3bc8bdd.json +1 -0
- package/out/build-info/e1a503d49bc77401.json +1 -0
- package/out/build-info/efe5396f8892ce77.json +1 -0
- package/out/build-info/f536d90ced745969.json +1 -0
- package/out/build-info/fed38823c7019b82.json +1 -0
- package/package.json +51 -0
- package/page.html +5384 -0
- package/pancakeswap-simple-tvl.sql +15 -0
- package/pancakeswap-top-pools.sql +29 -0
- package/pancakeswap-tvl-optimized.sql +57 -0
- package/pancakeswap-tvl-query.sql +60 -0
- package/pancakeswap-underflow-hunting.sql +51 -0
- package/pancakeswap-vulnerability-queries.sql +200 -0
- package/posi_page.html +6369 -0
- package/posi_response.json +29 -0
- package/proxy_page.html +500 -0
- package/run_mythril_elephant.sh +18 -0
- package/sHEGIC-bytecode.bin +6 -0
- package/sHEGIC-mythril-analysis.txt +1 -0
- package/sHEGIC-mythril-full.txt +134 -0
- package/sHEGIC_ANALYSIS.md +135 -0
- package/sHEGIC_EXPLOIT_ANALYSIS.md +317 -0
- package/sHEGIC_MYTHRIL_ANALYSIS.md +361 -0
- package/scrape-snowcrash.js +28 -0
- package/scripts/yooshi_drain.sh +154 -0
- package/shi_raw.json +1 -0
- package/temp.json +1 -0
- package/temp_harvest.json +1 -0
- package/temp_pika.json +1 -0
- package/temp_posi.json +1 -0
- package/temp_response.json +1 -0
- package/test-lft-hidden-balance.js +108 -0
- package/test-xfi-exploit.js +140 -0
- package/trunk-liquidity-rescue.js +164 -0
- package/vBABY_page.html +6153 -0
- package/vBABY_response.json +29 -0
- package/wsg_response.json +1 -0
- package/yooldo_page.html +10371 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# BCE Token Exploit Analysis - ACTUAL ROOT CAUSE
|
|
2
|
+
|
|
3
|
+
## CORRECTED UNDERSTANDING
|
|
4
|
+
|
|
5
|
+
The BCE exploit was NOT a flashloan price manipulation. It was a **TOKEN DESIGN FLAW** - a deferred burn mechanism that allowed burning tokens directly from the PancakeSwap LP pool.
|
|
6
|
+
|
|
7
|
+
## THE REAL EXPLOIT MECHANISM
|
|
8
|
+
|
|
9
|
+
### Root Cause: Flawed Burn Mechanism
|
|
10
|
+
|
|
11
|
+
BCE token had a **deferred burn mechanism** with a critical flaw:
|
|
12
|
+
|
|
13
|
+
1. **Global `scheduledDestruction` variable** - Stored on sells
|
|
14
|
+
2. **Transfer hook allowed burning tokens FROM THE PANCAKESWAP PAIR**
|
|
15
|
+
3. **Non-pair transfers could trigger the deferred burn**
|
|
16
|
+
4. **Attacker could call `sync()` after burning pair's tokens**
|
|
17
|
+
|
|
18
|
+
### Attack Flow (Actual)
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
1. Attacker borrows capital from Venus Protocol (NOT flashloan)
|
|
22
|
+
2. Buy BCE from PancakeSwap pool
|
|
23
|
+
3. Sell BCE → This LOADS the scheduledDestruction variable
|
|
24
|
+
4. Use helper contract to trigger a normal transfer
|
|
25
|
+
5. Transfer hook BURNS BCE directly from PancakeSwap pair
|
|
26
|
+
6. Call sync() on the pair
|
|
27
|
+
7. Pool reserves now: reserve0 = 36575519358323350250416289 USDT, reserve1 = 10000 BCE
|
|
28
|
+
8. BCE side pushed to DUST (10000 tokens)
|
|
29
|
+
9. Price completely distorted
|
|
30
|
+
10. Final BCE sale extracts almost all USDT (~$679k)
|
|
31
|
+
11. Repay Venus loan, keep profit
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Key Insight
|
|
35
|
+
|
|
36
|
+
**This is NOT about low liquidity. This is about a TOKEN BUG that lets you burn tokens FROM THE LP POOL.**
|
|
37
|
+
|
|
38
|
+
Normal AMM flow: Tokens only leave pool via swaps
|
|
39
|
+
BCE bug: Transfer hook can burn pool's tokens directly → breaks AMM invariant
|
|
40
|
+
|
|
41
|
+
### The Vulnerability Pattern
|
|
42
|
+
|
|
43
|
+
```solidity
|
|
44
|
+
// VULNERABLE PATTERN (hypothetical BCE code)
|
|
45
|
+
address public scheduledDestruction;
|
|
46
|
+
|
|
47
|
+
function _transfer(address from, address to, uint256 amount) internal {
|
|
48
|
+
// On sell to pair
|
|
49
|
+
if (to == pancakePair) {
|
|
50
|
+
scheduledDestruction = from; // Store for later burn
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// On any transfer (including non-pair transfers)
|
|
54
|
+
if (scheduledDestruction != address(0)) {
|
|
55
|
+
// BUG: This burns from the PAIR, not from the seller!
|
|
56
|
+
_burn(pancakePair, someAmount);
|
|
57
|
+
scheduledDestruction = address(0);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Normal transfer logic
|
|
61
|
+
super._transfer(from, to, amount);
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Why This Matters
|
|
66
|
+
|
|
67
|
+
**NONE of the 5 tokens (TITANO, RISE, POSI, TSC, CATE) have this vulnerability** because:
|
|
68
|
+
- They use standard OpenZeppelin ERC20
|
|
69
|
+
- No deferred burn mechanisms
|
|
70
|
+
- No transfer hooks that can burn from arbitrary addresses
|
|
71
|
+
- No global state that affects LP pools
|
|
72
|
+
|
|
73
|
+
## Checking the 5 Tokens for Similar Bugs
|
|
74
|
+
|
|
75
|
+
Need to check if any have:
|
|
76
|
+
1. ✓ Deferred burn/destruction mechanisms
|
|
77
|
+
2. ✓ Transfer hooks that modify balances of non-participants
|
|
78
|
+
3. ✓ Global state variables that affect transfers
|
|
79
|
+
4. ✓ Ability to burn tokens from LP pairs
|
|
80
|
+
|
|
81
|
+
## Conclusion
|
|
82
|
+
|
|
83
|
+
BCE exploit was a **CODE VULNERABILITY**, not an economic attack. The token design allowed:
|
|
84
|
+
- Burning tokens from the LP pool
|
|
85
|
+
- Manipulating pool reserves via sync()
|
|
86
|
+
- Breaking AMM invariant (x * y = k)
|
|
87
|
+
|
|
88
|
+
This is similar to the SyncToken exploit we analyzed before, where fee-on-transfer tokens can drain LP pools.
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## TESTED TOKENS - ALL SAFE
|
|
92
|
+
|
|
93
|
+
Ran comprehensive analysis on 5 similar tokens:
|
|
94
|
+
|
|
95
|
+
### 1. TITANO (0xBA96731324dE188ebC1eD87ca74544dDEbC07D7f)
|
|
96
|
+
- Mechanism: Rebase with _gonsPerFragment
|
|
97
|
+
- Transfer: Standard deduction/addition to _gonBalances
|
|
98
|
+
- Burn: None (only rebase() by owner)
|
|
99
|
+
- Result: **SAFE** - No deferred burn mechanism
|
|
100
|
+
|
|
101
|
+
### 2. POSI (0x5CA42204cDaa70d5c773946e69dE942b85CA6706)
|
|
102
|
+
- Mechanism: Reflection with _rOwned/_tOwned
|
|
103
|
+
- Transfer: Standard reflection with genesis bonus
|
|
104
|
+
- Burn: _burn() only callable by treasury contract
|
|
105
|
+
- Result: **SAFE** - Burn restricted to treasury, no deferred mechanism
|
|
106
|
+
|
|
107
|
+
### 3. RISE/EverRise
|
|
108
|
+
- Mechanism: Standard RFI reflection
|
|
109
|
+
- Transfer: 2% reflection + 9% buyback/marketing
|
|
110
|
+
- Burn: Standard burn to dead address
|
|
111
|
+
- Result: **SAFE** - Standard RFI implementation
|
|
112
|
+
|
|
113
|
+
### 4. TSC (TrusterCoin)
|
|
114
|
+
- Mechanism: Standard RFI reflection
|
|
115
|
+
- Transfer: 5% reflection + 2% liquidity
|
|
116
|
+
- Burn: Standard burn to dead address
|
|
117
|
+
- Result: **SAFE** - Standard RFI implementation
|
|
118
|
+
|
|
119
|
+
### 5. CATE
|
|
120
|
+
- Mechanism: Standard RFI reflection
|
|
121
|
+
- Transfer: Reflection + liquidity fees
|
|
122
|
+
- Burn: Standard burn
|
|
123
|
+
- Result: **SAFE** - Standard RFI implementation
|
|
124
|
+
|
|
125
|
+
## Vulnerability Checklist Results
|
|
126
|
+
|
|
127
|
+
| Token | Deferred Burn | scheduledDestruction | Burns from Arbitrary | Can Burn LP | Vulnerable |
|
|
128
|
+
|-------|---------------|---------------------|---------------------|-------------|------------|
|
|
129
|
+
| BCE | ✓ YES | ✓ YES | ✓ YES | ✓ YES | **YES** |
|
|
130
|
+
| TITANO | ✗ NO | ✗ NO | ✗ NO | ✗ NO | NO |
|
|
131
|
+
| POSI | ✗ NO | ✗ NO | ✗ NO | ✗ NO | NO |
|
|
132
|
+
| RISE | ✗ NO | ✗ NO | ✗ NO | ✗ NO | NO |
|
|
133
|
+
| TSC | ✗ NO | ✗ NO | ✗ NO | ✗ NO | NO |
|
|
134
|
+
| CATE | ✗ NO | ✗ NO | ✗ NO | ✗ NO | NO |
|
|
135
|
+
|
|
136
|
+
## Key Findings
|
|
137
|
+
|
|
138
|
+
1. **BCE was unique** - None of the 5 tested tokens have the deferred burn vulnerability
|
|
139
|
+
2. **All use standard patterns** - Rebase (TITANO) or Reflection (others)
|
|
140
|
+
3. **No LP pool manipulation** - None can burn tokens from liquidity pools
|
|
141
|
+
4. **No global state attacks** - No scheduledDestruction or similar variables
|
|
142
|
+
|
|
143
|
+
## Test Results
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
Ran 6 tests for test/BCE_DeferredBurnExploit.t.sol
|
|
147
|
+
✓ testTITANO_DeferredBurn() - SAFE
|
|
148
|
+
✓ testPOSI_DeferredBurn() - SAFE
|
|
149
|
+
✓ testRISE_DeferredBurn() - SAFE
|
|
150
|
+
✓ testTSC_DeferredBurn() - SAFE
|
|
151
|
+
✓ testCATE_DeferredBurn() - SAFE
|
|
152
|
+
✓ testSummary() - All tokens safe
|
|
153
|
+
|
|
154
|
+
All tests passed
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Conclusion
|
|
158
|
+
|
|
159
|
+
BCE's $679k exploit was caused by a unique token design flaw that allowed:
|
|
160
|
+
1. Storing a deferred burn target (scheduledDestruction)
|
|
161
|
+
2. Triggering burns from the LP pool via transfer hooks
|
|
162
|
+
3. Calling sync() to update reserves with burned tokens
|
|
163
|
+
4. Draining USDT from the skewed pool
|
|
164
|
+
|
|
165
|
+
**NONE of the 5 tested tokens (TITANO, POSI, RISE, TSC, CATE) have this vulnerability.** They all use standard, safe token mechanisms without deferred burns or LP pool manipulation capabilities.
|
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
# Beefy Finance BNB Chain Analysis
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Analyzing Beefy Finance vaults on BNB Chain (formerly BSC) with focus on high-yield opportunities and security considerations.
|
|
5
|
+
|
|
6
|
+
## Vault Rankings by Priority
|
|
7
|
+
|
|
8
|
+
### 🚨 CRITICAL ALERT: 4-USDT Pool (1,299% APY)
|
|
9
|
+
|
|
10
|
+
**Performance:**
|
|
11
|
+
- APY: **1,299%** ⚠️
|
|
12
|
+
- Daily APY: 0.7255%
|
|
13
|
+
- TVL: $12,953
|
|
14
|
+
- Liquidity: $38,385
|
|
15
|
+
|
|
16
|
+
**Strategy Type:** PancakeSwap CLM Pool
|
|
17
|
+
**Risk Assessment:** EXTREME - Investigate immediately
|
|
18
|
+
|
|
19
|
+
**Red Flags:**
|
|
20
|
+
1. Unsustainably high APY (1,299%)
|
|
21
|
+
2. Low TVL relative to APY suggests:
|
|
22
|
+
- New pool with temporary incentives
|
|
23
|
+
- Potential rug pull setup
|
|
24
|
+
- Exploit opportunity
|
|
25
|
+
- Broken reward calculation
|
|
26
|
+
3. Token "4" is suspicious - likely a meme/scam token
|
|
27
|
+
4. Low liquidity ($38k) makes this highly manipulable
|
|
28
|
+
|
|
29
|
+
**Investigation Priority:** HIGHEST
|
|
30
|
+
**Action Items:**
|
|
31
|
+
- Verify token "4" contract and legitimacy
|
|
32
|
+
- Check for honeypot characteristics
|
|
33
|
+
- Analyze reward distribution mechanism
|
|
34
|
+
- Test deposit/withdrawal functionality
|
|
35
|
+
- Check for hidden fees or locks
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## High-Value Targets (By TVL)
|
|
40
|
+
|
|
41
|
+
### 1. USDT-USDC PancakeSwap CLM Vault
|
|
42
|
+
**Performance:**
|
|
43
|
+
- APY: 0.42%
|
|
44
|
+
- Daily APY: 0.0011%
|
|
45
|
+
- TVL: $20,032
|
|
46
|
+
- Liquidity: $45.93M
|
|
47
|
+
|
|
48
|
+
**Strategy Type:** Stablecoin CLM Vault
|
|
49
|
+
**Risk Level:** Very Low
|
|
50
|
+
**Notes:**
|
|
51
|
+
- Safest option - stablecoin pair
|
|
52
|
+
- Excellent liquidity depth
|
|
53
|
+
- Low but stable returns
|
|
54
|
+
- Minimal IL risk
|
|
55
|
+
|
|
56
|
+
**Security Focus:**
|
|
57
|
+
- Fee extraction mechanisms
|
|
58
|
+
- Rounding errors in large transactions
|
|
59
|
+
- Oracle manipulation (though stablecoins are safer)
|
|
60
|
+
|
|
61
|
+
### 2. CAKE-WBNB PancakeSwap CLM Pool
|
|
62
|
+
**Performance:**
|
|
63
|
+
- APY: 0.8%
|
|
64
|
+
- Daily APY: 0.0021%
|
|
65
|
+
- TVL: $22,495
|
|
66
|
+
- Liquidity: $5.09M
|
|
67
|
+
|
|
68
|
+
**Strategy Type:** Native DEX token pair
|
|
69
|
+
**Risk Level:** Low-Medium
|
|
70
|
+
**Notes:**
|
|
71
|
+
- CAKE is PancakeSwap's native token
|
|
72
|
+
- Good liquidity
|
|
73
|
+
- Low APY but stable
|
|
74
|
+
- Established pair
|
|
75
|
+
|
|
76
|
+
### 3. ASTER-WBNB Uniswap CLM Pool
|
|
77
|
+
**Performance:**
|
|
78
|
+
- APY: 35.19%
|
|
79
|
+
- Daily APY: 0.0826%
|
|
80
|
+
- TVL: $20,116
|
|
81
|
+
- Liquidity: $287,023
|
|
82
|
+
|
|
83
|
+
**Strategy Type:** Uniswap V3 CLM
|
|
84
|
+
**Risk Level:** Medium-High
|
|
85
|
+
**Notes:**
|
|
86
|
+
- ASTER token needs investigation
|
|
87
|
+
- Decent APY without being suspicious
|
|
88
|
+
- Moderate liquidity
|
|
89
|
+
- Uniswap integration on BSC
|
|
90
|
+
|
|
91
|
+
**Investigation:**
|
|
92
|
+
- What is ASTER token?
|
|
93
|
+
- Token contract verification
|
|
94
|
+
- Holder distribution
|
|
95
|
+
- Trading volume analysis
|
|
96
|
+
|
|
97
|
+
### 4. ETH-BTCB PancakeSwap CLM Vault
|
|
98
|
+
**Performance:**
|
|
99
|
+
- APY: 0.26%
|
|
100
|
+
- Daily APY: 0.0007%
|
|
101
|
+
- TVL: $20,007
|
|
102
|
+
- Liquidity: $1.10M
|
|
103
|
+
|
|
104
|
+
**Strategy Type:** Blue-chip crypto pair
|
|
105
|
+
**Risk Level:** Low
|
|
106
|
+
**Notes:**
|
|
107
|
+
- Safest volatile pair
|
|
108
|
+
- BTCB is Binance-pegged Bitcoin
|
|
109
|
+
- Low APY reflects low risk
|
|
110
|
+
- Good for conservative strategies
|
|
111
|
+
|
|
112
|
+
### 5. XVS-WBNB PancakeSwap CLM Vault
|
|
113
|
+
**Performance:**
|
|
114
|
+
- APY: 39.78%
|
|
115
|
+
- Daily APY: 0.0918%
|
|
116
|
+
- TVL: $16,938
|
|
117
|
+
- Liquidity: $170,481
|
|
118
|
+
|
|
119
|
+
**Strategy Type:** Venus Protocol token pair
|
|
120
|
+
**Risk Level:** Medium
|
|
121
|
+
**Notes:**
|
|
122
|
+
- XVS is Venus Protocol governance token
|
|
123
|
+
- Reasonable APY for DeFi token
|
|
124
|
+
- Established protocol
|
|
125
|
+
- Moderate liquidity
|
|
126
|
+
|
|
127
|
+
### 6. ETH-WBNB PancakeSwap CLM Vault
|
|
128
|
+
**Performance:**
|
|
129
|
+
- APY: 0.48%
|
|
130
|
+
- Daily APY: 0.0013%
|
|
131
|
+
- TVL: $13,489
|
|
132
|
+
- Liquidity: $8.34M
|
|
133
|
+
|
|
134
|
+
**Strategy Type:** Major crypto pair
|
|
135
|
+
**Risk Level:** Low
|
|
136
|
+
**Notes:**
|
|
137
|
+
- Excellent liquidity
|
|
138
|
+
- Low but stable returns
|
|
139
|
+
- Minimal IL risk between correlated assets
|
|
140
|
+
|
|
141
|
+
### 7. DOGE-WBNB PancakeSwap CLM Pool
|
|
142
|
+
**Performance:**
|
|
143
|
+
- APY: 0.28%
|
|
144
|
+
- Daily APY: 0.0007%
|
|
145
|
+
- TVL: $16,265
|
|
146
|
+
- Liquidity: $742,546
|
|
147
|
+
|
|
148
|
+
**Strategy Type:** Meme coin pair
|
|
149
|
+
**Risk Level:** Medium
|
|
150
|
+
**Notes:**
|
|
151
|
+
- DOGE is established meme coin
|
|
152
|
+
- Good liquidity
|
|
153
|
+
- Low APY reflects stability
|
|
154
|
+
- Higher volatility than blue chips
|
|
155
|
+
|
|
156
|
+
### 8. axlUSDC-USDT PancakeSwap CLM Pool
|
|
157
|
+
**Performance:**
|
|
158
|
+
- APY: 0%
|
|
159
|
+
- Daily APY: 0%
|
|
160
|
+
- TVL: $15,450
|
|
161
|
+
- Liquidity: $233,873
|
|
162
|
+
|
|
163
|
+
**Strategy Type:** Cross-chain stablecoin pair
|
|
164
|
+
**Risk Level:** Low-Medium
|
|
165
|
+
**Notes:**
|
|
166
|
+
- axlUSDC is Axelar-bridged USDC
|
|
167
|
+
- 0% APY is concerning - pool may be inactive
|
|
168
|
+
- Good liquidity despite no rewards
|
|
169
|
+
- Bridge risk consideration
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Security Analysis Priority List
|
|
174
|
+
|
|
175
|
+
### Tier 1: Immediate Investigation
|
|
176
|
+
1. **4-USDT (1,299% APY)** - Potential scam/exploit
|
|
177
|
+
- Token contract analysis
|
|
178
|
+
- Honeypot testing
|
|
179
|
+
- Reward mechanism audit
|
|
180
|
+
|
|
181
|
+
### Tier 2: High-Value Targets
|
|
182
|
+
2. **USDT-USDC ($20k TVL, $45M liquidity)** - Large liquidity pool
|
|
183
|
+
3. **CAKE-WBNB ($22k TVL, $5M liquidity)** - Core PancakeSwap pair
|
|
184
|
+
4. **ASTER-WBNB (35% APY)** - Unknown token investigation
|
|
185
|
+
|
|
186
|
+
### Tier 3: Established Protocols
|
|
187
|
+
5. **XVS-WBNB (40% APY)** - Venus Protocol integration
|
|
188
|
+
6. **ETH-WBNB ($8.3M liquidity)** - High liquidity target
|
|
189
|
+
7. **ETH-BTCB** - Blue chip pair
|
|
190
|
+
|
|
191
|
+
### Tier 4: Lower Priority
|
|
192
|
+
8. **DOGE-WBNB** - Meme coin pair
|
|
193
|
+
9. **axlUSDC-USDT (0% APY)** - Inactive pool
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Common Vulnerability Patterns to Test
|
|
198
|
+
|
|
199
|
+
### 1. CLM-Specific Vulnerabilities
|
|
200
|
+
```solidity
|
|
201
|
+
// Concentrated Liquidity Market risks:
|
|
202
|
+
- Range manipulation attacks
|
|
203
|
+
- Rebalancing front-running
|
|
204
|
+
- Tick spacing exploits
|
|
205
|
+
- Liquidity concentration attacks
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 2. Cross-Protocol Risks
|
|
209
|
+
```solidity
|
|
210
|
+
// PancakeSwap integration:
|
|
211
|
+
- Router approval exploits
|
|
212
|
+
- Swap slippage manipulation
|
|
213
|
+
- LP token accounting errors
|
|
214
|
+
|
|
215
|
+
// Uniswap V3 on BSC:
|
|
216
|
+
- Position NFT handling
|
|
217
|
+
- Fee tier manipulation
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### 3. Reward Distribution
|
|
221
|
+
```solidity
|
|
222
|
+
// Common issues:
|
|
223
|
+
- Reward calculation overflow
|
|
224
|
+
- First depositor advantage
|
|
225
|
+
- Rounding errors favoring attacker
|
|
226
|
+
- Stale reward rate exploitation
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 4. Bridge Token Risks (axlUSDC)
|
|
230
|
+
```solidity
|
|
231
|
+
// Axelar bridge considerations:
|
|
232
|
+
- Bridge pause scenarios
|
|
233
|
+
- Peg deviation exploitation
|
|
234
|
+
- Cross-chain message replay
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Exploit Test Plan
|
|
240
|
+
|
|
241
|
+
### Phase 1: Token Analysis
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
```solidity
|
|
245
|
+
// Test: Token "4" Analysis
|
|
246
|
+
contract Token4Analysis is Test {
|
|
247
|
+
function testToken4Legitimacy() public {
|
|
248
|
+
// 1. Check contract source code
|
|
249
|
+
// 2. Test buy/sell functionality
|
|
250
|
+
// 3. Check for hidden fees
|
|
251
|
+
// 4. Verify holder distribution
|
|
252
|
+
// 5. Test transfer restrictions
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function testASTERToken() public {
|
|
256
|
+
// 1. Verify token contract
|
|
257
|
+
// 2. Check liquidity depth
|
|
258
|
+
// 3. Test price impact
|
|
259
|
+
// 4. Analyze holder concentration
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Phase 2: Vault Contract Security
|
|
265
|
+
```solidity
|
|
266
|
+
// Test: Deposit/Withdrawal Flows
|
|
267
|
+
contract BeefyVaultExploit is Test {
|
|
268
|
+
function testReentrancyAttack() public {
|
|
269
|
+
// Test reentrancy in deposit/withdraw
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
function testFirstDepositorAdvantage() public {
|
|
273
|
+
// Test share calculation with minimal deposits
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
function testFlashLoanPriceManipulation() public {
|
|
277
|
+
// Manipulate pool price during harvest
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
function testEmergencyWithdrawAbuse() public {
|
|
281
|
+
// Test emergency function access controls
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Phase 3: CLM Strategy Testing
|
|
287
|
+
```solidity
|
|
288
|
+
// Test: Concentrated Liquidity Manipulation
|
|
289
|
+
contract CLMExploit is Test {
|
|
290
|
+
function testRangeManipulation() public {
|
|
291
|
+
// Force rebalancing at unfavorable prices
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
function testTickSpacingExploit() public {
|
|
295
|
+
// Exploit tick spacing in position management
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function testRebalancingFrontrun() public {
|
|
299
|
+
// Front-run rebalancing transactions
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Phase 4: Economic Attacks
|
|
305
|
+
```solidity
|
|
306
|
+
// Test: Reward and Fee Exploitation
|
|
307
|
+
contract EconomicExploit is Test {
|
|
308
|
+
function testRewardCalculationOverflow() public {
|
|
309
|
+
// Test for overflow in reward calculations
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function testFeeExtraction() public {
|
|
313
|
+
// Analyze actual vs advertised fees
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
function testCompoundingManipulation() public {
|
|
317
|
+
// Exploit auto-compounding mechanism
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Recommended Testing Sequence
|
|
325
|
+
|
|
326
|
+
### Step 1: Quick Wins (1-2 hours)
|
|
327
|
+
1. Analyze token "4" contract on BSCScan
|
|
328
|
+
2. Test deposit/withdrawal on 4-USDT pool with small amount
|
|
329
|
+
3. Check ASTER token legitimacy
|
|
330
|
+
4. Verify axlUSDC-USDT 0% APY reason
|
|
331
|
+
|
|
332
|
+
### Step 2: Contract Fetching (2-3 hours)
|
|
333
|
+
```bash
|
|
334
|
+
# Fetch vault contracts from Beefy API
|
|
335
|
+
curl -s 'https://api.beefy.finance/vaults' | \
|
|
336
|
+
jq '.[] | select(.chain == "bsc") | {id, earnContractAddress, strategy}'
|
|
337
|
+
|
|
338
|
+
# Get contract source from BSCScan API
|
|
339
|
+
# Verify on BSCScan explorer
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### Step 3: Static Analysis (3-4 hours)
|
|
343
|
+
```bash
|
|
344
|
+
# Run Slither on each vault
|
|
345
|
+
slither BeefyVault.sol --detect all
|
|
346
|
+
|
|
347
|
+
# Check for common patterns
|
|
348
|
+
slither BeefyVault.sol --detect reentrancy-eth,arbitrary-send-eth
|
|
349
|
+
|
|
350
|
+
# Run Mythril for deeper analysis
|
|
351
|
+
myth analyze BeefyVault.sol --execution-timeout 300
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Step 4: Dynamic Testing (5-8 hours)
|
|
355
|
+
```solidity
|
|
356
|
+
// Create comprehensive Foundry test suite
|
|
357
|
+
// Test each identified vulnerability
|
|
358
|
+
// Document findings
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## Risk Matrix
|
|
364
|
+
|
|
365
|
+
| Vault | TVL | APY | Risk Level | Priority |
|
|
366
|
+
|-------|-----|-----|------------|----------|
|
|
367
|
+
| 4-USDT | $12,953 | 1,299% | EXTREME | 🔴 CRITICAL |
|
|
368
|
+
| ASTER-WBNB | $20,116 | 35.19% | HIGH | 🟠 HIGH |
|
|
369
|
+
| XVS-WBNB | $16,938 | 39.78% | MEDIUM | 🟡 MEDIUM |
|
|
370
|
+
| USDT-USDC | $20,032 | 0.42% | LOW | 🟢 LOW |
|
|
371
|
+
| ETH-BTCB | $20,007 | 0.26% | LOW | 🟢 LOW |
|
|
372
|
+
| ETH-WBNB | $13,489 | 0.48% | LOW | 🟢 LOW |
|
|
373
|
+
| CAKE-WBNB | $22,495 | 0.8% | LOW | 🟢 LOW |
|
|
374
|
+
| DOGE-WBNB | $16,265 | 0.28% | MEDIUM | 🟡 MEDIUM |
|
|
375
|
+
| axlUSDC-USDT | $15,450 | 0% | MEDIUM | 🟡 MEDIUM |
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## Key Questions to Answer
|
|
380
|
+
|
|
381
|
+
### About 4-USDT Pool:
|
|
382
|
+
1. What is token "4"? Contract address?
|
|
383
|
+
2. Why is APY 1,299%?
|
|
384
|
+
3. Can we actually withdraw after depositing?
|
|
385
|
+
4. Are there hidden fees or locks?
|
|
386
|
+
5. Is this a honeypot?
|
|
387
|
+
|
|
388
|
+
### About ASTER Token:
|
|
389
|
+
1. What project is ASTER?
|
|
390
|
+
2. Is it audited?
|
|
391
|
+
3. Why Uniswap instead of PancakeSwap?
|
|
392
|
+
4. Token holder distribution?
|
|
393
|
+
5. Is 35% APY sustainable?
|
|
394
|
+
|
|
395
|
+
### About axlUSDC-USDT:
|
|
396
|
+
1. Why 0% APY?
|
|
397
|
+
2. Is the pool active?
|
|
398
|
+
3. Why is there $15k TVL with no rewards?
|
|
399
|
+
4. Bridge security considerations?
|
|
400
|
+
|
|
401
|
+
### General Vault Questions:
|
|
402
|
+
1. What are the actual fee structures?
|
|
403
|
+
2. How often do strategies rebalance?
|
|
404
|
+
3. What are the emergency procedures?
|
|
405
|
+
4. Who controls strategy upgrades?
|
|
406
|
+
5. Are there any timelocks?
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
## Immediate Action Items
|
|
411
|
+
|
|
412
|
+
### Priority 1: Investigate 4-USDT
|
|
413
|
+
```solidity
|
|
414
|
+
// Create test file: test/BeefyBNB4USDTAnalysis.t.sol
|
|
415
|
+
// 1. Get token "4" contract address
|
|
416
|
+
// 2. Analyze token contract
|
|
417
|
+
// 3. Test small deposit
|
|
418
|
+
// 4. Attempt withdrawal
|
|
419
|
+
// 5. Document findings
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Priority 2: Fetch All Vault Contracts
|
|
423
|
+
```bash
|
|
424
|
+
# Get vault addresses for all 9 pools
|
|
425
|
+
# Download verified source code
|
|
426
|
+
# Set up Foundry project structure
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
### Priority 3: Run Automated Scans
|
|
430
|
+
```bash
|
|
431
|
+
# Slither on all contracts
|
|
432
|
+
# Mythril on high-priority targets
|
|
433
|
+
# Check for known vulnerability patterns
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Priority 4: Manual Code Review
|
|
437
|
+
```solidity
|
|
438
|
+
// Focus on:
|
|
439
|
+
// - Access controls
|
|
440
|
+
// - Reward calculations
|
|
441
|
+
// - Emergency functions
|
|
442
|
+
// - Upgrade mechanisms
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
## Expected Findings
|
|
448
|
+
|
|
449
|
+
### High Probability Issues:
|
|
450
|
+
1. **4-USDT is likely a scam** - 1,299% APY is not sustainable
|
|
451
|
+
2. **Rounding errors** in share calculations
|
|
452
|
+
3. **Front-running opportunities** during rebalancing
|
|
453
|
+
4. **Fee discrepancies** between advertised and actual
|
|
454
|
+
|
|
455
|
+
### Medium Probability Issues:
|
|
456
|
+
1. **Access control weaknesses** in strategy contracts
|
|
457
|
+
2. **Oracle manipulation** possibilities
|
|
458
|
+
3. **Slippage exploitation** during harvests
|
|
459
|
+
4. **Emergency function abuse**
|
|
460
|
+
|
|
461
|
+
### Low Probability (But High Impact):
|
|
462
|
+
1. **Reentrancy vulnerabilities**
|
|
463
|
+
2. **Integer overflow/underflow**
|
|
464
|
+
3. **Proxy upgrade exploits**
|
|
465
|
+
4. **Cross-contract call manipulation**
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Conclusion
|
|
470
|
+
|
|
471
|
+
BNB Chain Beefy vaults present a mix of opportunities:
|
|
472
|
+
|
|
473
|
+
**Safe Plays:**
|
|
474
|
+
- USDT-USDC (0.42% APY) - Stable, low risk
|
|
475
|
+
- ETH-BTCB (0.26% APY) - Blue chip pair
|
|
476
|
+
- ETH-WBNB (0.48% APY) - High liquidity
|
|
477
|
+
|
|
478
|
+
**Moderate Risk/Reward:**
|
|
479
|
+
- XVS-WBNB (39.78% APY) - Established DeFi protocol
|
|
480
|
+
- ASTER-WBNB (35.19% APY) - Needs investigation
|
|
481
|
+
|
|
482
|
+
**High Risk:**
|
|
483
|
+
- 4-USDT (1,299% APY) - Almost certainly a scam/exploit
|
|
484
|
+
|
|
485
|
+
**Investigation Needed:**
|
|
486
|
+
- axlUSDC-USDT (0% APY) - Why no rewards?
|
|
487
|
+
|
|
488
|
+
The 4-USDT pool should be the immediate focus - either it's an exploit opportunity or a trap. Either way, it's the most interesting target for security research.
|