Skip to content
Back to skills

Reviewing Cross Function And Composer

ASecurity

Review compositions of otherwise-safe functions in one transaction: deposit+borrow, harvest+redeem, vote+queue. Use when unit tests pass but invariants fail on sequences. The handler skill is the test harness.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentsgo

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add nuroctane/nur-cli --skill reviewing-cross-function-and-composer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reviewing Cross Function And Composer?

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

Security grade badge for Reviewing Cross Function And Composer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nuroctane-reviewing-cross-function-and-composer/badge)](https://www.skillsdirectory.com/skills/nuroctane-reviewing-cross-function-and-composer)

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-cross-function-and-composer
description: "Review compositions of otherwise-safe functions in one transaction: deposit+borrow, harvest+redeem, vote+queue. Use when unit tests pass but invariants fail on sequences. The handler skill is the test harness."
---

# Reviewing cross-function composition

Most paid logic bugs are not a single detector hit. Two functions, one tx.

In-scope. This playbook is the **question list**; `writing-foundry-invariant-handlers` is the engine.

## Method

1. List value-moving entrypoints.
2. For each pair (including the same function twice), ask: after A then B, does conservation still hold?
3. Include donate, hook, flash loan, and oracle update as A.
4. Put A and B on the handler so the fuzzer finds the pair.

## Classic pairs

- deposit -> borrow (undercollateral if price is spot)
- harvest -> redeem (share price pumped for the harvester)
- transfer -> withdraw (read-only reentrancy)
- vote -> transfer (flashloan governance)
- liquidate -> oracle update

If the invariant fails, file **one** finding on the composition, not two half-bugs.

## Paid bounty analogs

This is where most "logic" Immunefi rows land. Full `$` table: `hunting-x-linked-bounties` `references/paid-payouts.md`.

| $ | Protocol | Pack | Whitehat |
|---|----------|------|----------|
| $1.1M | Beanstalk insufficient validation | T03 | nicole |
| ~$182k | Beanstalk logic | T03 | Immunefi |
| $150k | Synthetix | T01 | thunderdeep14 |
| $60k | Mushrooms | T01 | CKK Sec |
| $40k of ~$70k | Hats Velvet calldata | T34 | 16 wardens |
| $25k | Zapper arbitrary calldata | T34 | Lucash-dev |
| $25k | Tidal; Ondo | T01 | csanuragjain; Ashiq/iosiro |
| $20k x2 | Thena (C4 miss) | T01 | zzykxx |
| $5k | xDai Stake; Charged Particles | T34 / T03 | |
| High | Lido Dual Governance (funds not at risk) | T21 | 0xriptide |
| High | dHEDGE 2026 X | T01 | s4muraii77 (confirm) |
| 1 Crit + 1 High | Uniswap v4 periphery + Universal Router (OZ) | T34 | OpenZeppelin |

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.