Skip to content
Back to skills

Reviewing Bridges And Messaging

ASecurity

Review token bridges and cross-chain messages: replay, decoder, finality, aliasing, amount inflation, and unauthorized mint. Use for lock/mint, burn/mint, LayerZero, Optimism messenger, zk bridges.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsrustgo

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add nuroctane/nur-cli --skill reviewing-bridges-and-messaging --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reviewing Bridges And Messaging?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reviewing Bridges And Messaging
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nuroctane-reviewing-bridges-and-messaging/badge)](https://www.skillsdirectory.com/skills/nuroctane-reviewing-bridges-and-messaging)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reviewing-bridges-and-messaging
description: "Review token bridges and cross-chain messages: replay, decoder, finality, aliasing, amount inflation, and unauthorized mint. Use for lock/mint, burn/mint, LayerZero, Optimism messenger, zk bridges."
---

# Reviewing bridges and messaging

Bridge bugs are usually Critical. In-scope source only. Never test by moving real funds across chains.

## Conservation

Minted/unlocked on the destination cannot exceed locked/burned on the source (plus documented fees). Prove with ghosts on both sides in a local dual-chain mock, not production.

## Message id

- Each message processed once (`done[id]`, nonce, nullifier).
- Replay on the same chain and **across forks** / reorgs if finality is short.
- Out-of-order: if allowed, state machine must not skip a spend.

## Decoder / recipient

- Amount and recipient cannot be inflated by padding, `abi.encodePacked` collision (SWC-133), or leftover calldata.
- Address aliasing (L1->L2) vs `msg.sender` checks.
- Token mapping: unmapped token should revert, not mint a spoofed asset.

## Caller

- `lzReceive` / `onMessage` / `xDomainMessageSender` authenticated as the real messenger/endpoint.
- Config (trusted remotes, merkle roots) is admin-gated and two-step where claimed.

## Finality

Assuming instant L1 inclusion on an optimistic rollup is a finding if the window is still open.

Next: `reviewing-l2-sequencer-and-finality`, `reviewing-signatures-permit-and-eip712` if messages are signed.

## Paid bounty analogs

Full `$` table: `hunting-x-linked-bounties` `references/paid-payouts.md`.

| $ | Protocol | Pack | Whitehat |
|---|----------|------|----------|
| $6M | Aurora ExitToNear / infinite spend | T18 / O01 | pwning.eth |
| ~$2.2M | Polygon MRC20 no balance check | T18 | Leon Spacewalker |
| ~$2M | Polygon Plasma double-spend | T17 | Gerhard Wagner |
| **$1M** | Scroll message spoof | T19 | WhiteHatMage |
| $200k | Interlay | T19 | pwning.eth |
| $50k | Wormhole (Marco); Axelar halt | T19 / C01 | Marco Nunes |
| High | Across V3 | T19 | zachobront, deadrosesxyz |
| $100k | Story Network | T19 | WhiteHatMage, Jiri123 |
| $5k | O3; LayerZero Trust low | T18 / T20 | Trust |

KelpDAO 2026 single-verifier **loss** is T20 (`named-losses.md`), not a bounty. Nomad trusted-root is a hack analog (`case-cards.md` 7.7).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.