cross-chain

Detects cross-chain and bridge vulnerabilities in Solidity smart contracts using pattern-based checks.

66|17|Updated Jan 21, 2026
One-click install
npx skills add https://github.com/BitterSecurity/Vigilo --skill cross-chain-bittersecurity
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: cross-chain
Source: https://github.com/BitterSecurity/Vigilo/tree/main/packages/claude/skills/vulnerability-patterns/cross-chain
Command: npx skills add https://github.com/BitterSecurity/Vigilo --skill cross-chain-bittersecurity

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Cross-chain bridges and messaging protocols have lost billions to exploits like forged messages, replay attacks, and missing source validation. This Skill gives auditors a structured catalog of cross-chain vulnerability patterns with vulnerable and secure Solidity code examples, so they can systematically check contracts that send or receive cross-chain messages. ## Core Features & Use Cases - Vulnerability Pattern Library: Covers missing source chain/address validation, replay attacks, message ordering issues, chain-specific code assumptions (block.number, PUSH0), bridge lock/mint attacks, and finality assumptions. - LayerZero-Specific Checks: Provides the required validation sequence for lzReceive implementations, including endpoint, chain, and trusted remote verification. - Audit Checklist & Severity Classification: Ships a cross-chain audit checklist and Critical/High/Medium severity ratings to prioritize findings. - Use Case: While auditing a LayerZero-based token bridge, use this Skill to verify that lzReceive validates the endpoint, source chain ID, and trusted remote address, and that processed message IDs are tracked to prevent replay. ## Quick Start Audit this Solidity bridge contract for cross-chain vulnerabilities including missing source validation, replay protection, and finality assumptions.

Frequently Asked Questions about cross-chain

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I audit a cross-chain bridge smart contract for vulnerabilities?▼

Check that every message-receiving function validates the source chain ID, source address, and endpoint caller, and tracks processed message IDs for replay protection. Then verify message ordering handling, finality assumptions, and chain-specific code like block.number semantics.

What are the most common cross-chain bridge vulnerabilities?▼

The most common issues are missing source chain validation, missing source address validation, absent replay protection, and signature verification bypasses. Historical exploits like Ronin, Wormhole, and Nomad each stemmed from one of these root causes.

How do I secure a LayerZero lzReceive function?▼

lzReceive must verify that msg.sender is the LayerZero endpoint, the source chain ID matches a trusted chain, and the source address matches the configured trusted remote. Only after all three checks should the payload be processed.

Does Solidity 0.8.20 cause problems on L2 chains?▼

Yes, contracts compiled with Solidity 0.8.20 or later use the PUSH0 opcode, which is not supported on chains like zkSync Era and older Arbitrum versions. Check the pragma version against the target deployment chains before deploying.

Why do cross-chain messages need replay protection?▼

Without nonce or message ID tracking, a valid message can be submitted multiple times, causing duplicate mints or withdrawals. Store processed message hashes in a mapping and reject any message that has already been executed.