Skills Explorer Add Skills

post-patch-validation

An agent skill by trailofbits, from trailofbits/skills. Tags: analysis, debugging, security, testing, validation.

What it does

Validates security patches with reproducible baseline-versus-patched evidence, including original exploits, root-cause variants, behavior preservation, regressions, and newly introduced security failures. Use after a patch exists and before accepting, merging, or reporting it as fixed; also use when an AI-generated patch, remediation commit, pull request, or proposed upstream fix needs adversarial post-patch validation across any language.

Install

With the skills CLI, which installs into Claude Code, Codex, Cursor and other agents:

npx skills add trailofbits/skills --skill post-patch-validation

Or copy the skill folder into Claude Code's skills directory by hand (~/.claude/skills for every project, or .claude/skills inside one):

git clone --depth 1 https://github.com/trailofbits/skills
cp -r skills/plugins/post-patch-validation/skills/post-patch-validation ~/.claude/skills/post-patch-validation

Safety box score

Grade C, moderate risk: 35 of 100 risk points, rated 2026-10-19. The grade rates what the skill and its scripts can reach on the machine of whoever installs it, across eight categories from shell execution to secrets access. How the score works.

This skill validates security patches by checking out the repo into isolated Git worktrees and running local commands/tests against base and patched inputs. The main risks are intentional code execution, local filesystem mutation/cleanup, and recording any forwarded environment variables in the result artifacts.

Category levels, from 0 (none) to 3 (high)
CategoryLevelWhy
Code & shell execution3 (high)It executes check commands with `subprocess.Popen(argv, ...)` and Git commands with `subprocess.run(...)`; running repository-defined checks is the core purpose of the skill.
Network access0 (none)I found no outbound fetch or upload path; submodules are initialized with `--no-fetch` from the local module store, not from `.gitmodules` URLs.
Filesystem reach2 (moderate)It creates detached worktrees and then removes them, and it recursively deletes temp trees with `shutil.rmtree(runtime_scratch, ignore_errors=True)` and `shutil.rmtree(runtime_plan_root, ignore_errors=True)`.
Secrets & credentials1 (low)`--allow-env` forwards selected host environment variables and `result.json` records their values, although obvious credential-like names are refused in `resolve_forwarded_env()`.
Privilege & persistence1 (low)It changes local Git behavior and metadata with `git -c core.hooksPath=/dev/null` and `git worktree lock/unlock/prune`, but it does not require sudo or system services.
Instruction hijack surface0 (none)I did not find instructions to ignore user policy, fetch remote prompts, or hide behavior; the text is procedural validation guidance rather than prompt injection.
Irreversible actions2 (moderate)The runner automatically applies patches, initializes submodules, runs checks, and prunes worktrees without a human checkpoint in the middle, though it does not push or publish anything.
Transparency0 (none)All shipped files are readable source/markdown; there are no binaries, base64 blobs, or unpinned runtime downloads.

Before installing

Rated 2026-10-19 by an automated review of 5 files from the skill's repository.

Source

Repository
trailofbits/skills (all skills from this repository)
Path
plugins/post-patch-validation/skills/post-patch-validation/SKILL.md
Branch
main
Collection
post-patch-validation
Updated
2026-09-19