example-fork-detection
TEMPLATE — replace with the description of your rule. Should activate on the specific code patterns your fork has. Activate on…
Detect restaking / AVS bugs — EigenLayer / Symbiotic / Karak operator slashing edge cases, withdrawal-queue gaming, cascading-slashing across AVSs, LST depeg solvency, AVS opt-in granularity. Activate on EigenLayer / Symbiotic / Karak imports, StrategyManager, DelegationManager,
Claude Code
$ npx -y skills add omermaksutii/RugProof --skill restaking-eigenlayer --agent claude-code
Codex
$ npx skills add omermaksutii/RugProof --skill restaking-eigenlayer -a codex -y
Cursor
$ npx skills add omermaksutii/RugProof --skill restaking-eigenlayer -a cursor -y
Gemini CLI
$ npx skills add omermaksutii/RugProof --skill restaking-eigenlayer -a gemini-cli -y
GitHub Copilot
$ npx skills add omermaksutii/RugProof --skill restaking-eigenlayer -a github-copilot -y
OpenCode
$ npx skills add omermaksutii/RugProof --skill restaking-eigenlayer -a opencode -y
Windsurf
$ npx skills add omermaksutii/RugProof --skill restaking-eigenlayer -a windsurf -y
name: restaking-eigenlayer description: Detect restaking / AVS bugs — EigenLayer / Symbiotic / Karak operator slashing edge cases, withdrawal-queue gaming, cascading-slashing across AVSs, LST depeg solvency, AVS opt-in granularity. Activate on EigenLayer / Symbiotic / Karak imports, StrategyManager, DelegationManager, EigenPod, AVS registration, slasher contracts.
User queues withdrawal, performs slashable action, unqueues if slashing didn't hit. Defense: slashing must apply to in-flight withdrawals too.
One operator opts into many AVSs. A slash by AVS-A reduces stake → AVS-B's quorum requirement may not be met. Solvency check before slashing.
Operator opts into a new AVS, exposing delegators to its slashing conditions without notice. Required: opt-in announcement + delegator-side withdrawal window.
Bad AVS spec slashes 100% on a single condition. With multiple AVSs sharing operator, this can drain the operator's restakers entirely. Cap per-slash magnitude.
Slashable conditions claim cryptographic provability. If proof is forgeable or the verifier has a bug, false slashing possible.
Strategy positions and delegation are separate. Race conditions between staking, delegating, and withdrawing. Off-by-one in undelegation queue can lock funds.
Beacon-chain withdrawal credentials must match EigenPod address. Mismatch → funds locked.
Operator can update commission instantly → flash-claim rewards at higher rate. Required: delay on commission updates.
Restaking accepts LSTs at face value. LST depeg → restaking is undercollateralized. Required: solvency check or repricing.
Different vault delegator types have different slashing semantics. Misconfiguration → slashing applies to wrong stakers.
DSS (Distributed Secured Service) registration without operator-consent check.
Slashing authority is a single EOA → can falsely slash. Required: timelock + multi-sig on slasher.
Operator queues large withdrawal just before a slashable event → effective slash magnitude reduced. Required: pre-slash freeze.
| Pattern | Severity | |---|---| | Slashing magnitude uncapped → drainable | **Critical** | | Slasher centralization (single EOA, no timelock) | **High** | | Cascading-slash insolvency on cross-AVS | **High** | | Operator opt-in without delegator notice/window | **High** | | Forgeable off-chain evidence in slashing | **High** | | Withdrawal-queue gaming | **High** | | LST depeg solvency unaccounted | **High** | | Commission update with no delay | **Medium-High** | | Pre-slash withdrawal grief | **Medium** |
Rugproof your code before someone else does. 🌐 Live site: omermaksutii.github.io/RugProof 📦 Latest: v1.0.0 — 45 commands · 23 agents · 45 skills · 13 MCP servers · tested, offline-first, with rule packs, a benchmark, non-EVM coverage, and post-deploy
TEMPLATE — replace with the description of your rule. Should activate on the specific code patterns your fork has. Activate on…
Detect unsafe assumptions about Solady's gas-optimized ERC20/ERC2612 permit and DN404 metadata. Solady's ERC20 uses custom…
Detect front-runnable ownership initialization in Solady Ownable / OwnableRoles. Solady's `_initializeOwner` is a guarded…
Detect Solady SafeTransferLib calls that assume the token has code. SafeTransferLib.safeTransfer/safeTransferFrom/safeApprove…
Detect Uniswap V4 hooks that fail to settle currency deltas with the PoolManager. Every credit/debit a hook creates…
Detect Uniswap V4 hooks whose address-encoded permission flags don't match the callbacks the hook actually implements. In V4 the…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…