Back to Skills

c-review

Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code.

6,067stars534forksUpdated 7/11/2026

Security Assessment

Safe(100/100)
Security Score100/100

About c-review

An orchestrated security review workflow for native C and C++ code, targeting memory corruption, integer overflows, race conditions, type confusion, and platform-specific vulnerabilities in userspace daemons, services, and applications on Linux, macOS, and Windows. It runs in the main conversation as an orchestrator that fans work out to named plugin subagents: c-review-worker agents run assigned clusters and write findings, a c-review-dedup-judge merges duplicate findings first, and a c-review-fp-judge then filters false positives, assigns severity, and produces the final reports. Findings are exchanged as markdown-with-YAML files in a shared output directory, and the orchestrator keeps a Task ledger for retry bookkeeping. It is explicitly scoped: appropriate for native C/C++ memory-safety auditing, but not for kernel drivers or modules, managed languages such as Java, C#, Python, Go, or Rust, or embedded/bare-metal code without libc. The workflow resolves a plugin root (across native Claude Code, Codex, or a fallback filesystem search) so later phases can call its bundled Python scripts, and it separates two scopes — a finding_scope_root, the audit subtree where findings may be filed, and read-only context_roots that agents may inspect to verify reachability, callers, build flags, and mitigations. Phase 0 collects parameters, inferring them from free-text arguments where possible: a threat model (REMOTE, LOCAL_UNPRIVILEGED, or BOTH), a worker model (haiku, sonnet, or opus), a severity filter (all, medium, or high), and an optional scope subpath. Later phases build a run plan, spawn a primer plus parallel workers, classify outcomes, run the two judges, and emit a stable artifact set including REPORT.md and REPORT.sarif. The skill documents concrete operational pitfalls to avoid, such as not spawning workers in the background (which defeats the primer cache), always running both judges even on zero findings, and never hiding a partial run behind a clean report.

FAQ

What kinds of vulnerabilities does this review target?

Memory corruption, integer overflows, race conditions, type confusion, and use-after-free in native C/C++ userspace code, including Linux and macOS daemons and Windows userspace services.

When should I not use it?

It excludes kernel drivers and modules, managed languages (Java, C#, Python, Go, Rust), and embedded or bare-metal code without libc.

What parameters does it collect before running?

A threat model (REMOTE, LOCAL_UNPRIVILEGED, or BOTH), a worker model (haiku, sonnet, or opus), and a severity filter (all, medium, or high), plus an optional scope subpath; it infers these from free-text arguments when possible.

How are findings deduplicated and validated?

A dedup-judge merges duplicate findings first, then a false-positive judge filters out non-issues, assigns severity, and writes the final REPORT.md and REPORT.sarif artifacts.

Why should workers not be spawned in the background?

Agent calls in a single message already run concurrently, and run_in_background defeats the primer cache so every worker pays full cache-creation cost — the guidance is to omit run_in_background from worker spawns.

All Files

3 files
SKILL.md38.3 KB
View
agents/openai.yaml0.1 KB
View
assets/trail-of-bits-mark.svg3.0 KB
View

Install c-review

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill