From appsec
This skill should be used when the user asks to "verify fix", "confirm fix", "check if vulnerability is fixed", "validate remediation", "recheck finding", or "test if patch works". Also triggers when the user has applied a security fix and wants confirmation that the vulnerability is actually resolved, or when referencing a finding ID and asking if it is still present.
npx claudepluginhub florianbuetow/claude-code --plugin appsecThis skill uses the workspace's default tool permissions.
Confirm that a security fix actually resolves the reported vulnerability.
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
Confirm that a security fix actually resolves the reported vulnerability.
Re-runs the specific check -- scanner rule or Claude analysis -- that
originally detected the issue. Outputs a clear verdict: FIXED or STILL
VULNERABLE with explanation. Updates the finding record in .appsec/findings.json.
Read ../../shared/schemas/flags.md for the full flag specification.
| Flag | Verify Behavior |
|---|---|
--scope | Identifies which findings to verify. Default: all findings with status fix-applied in scope. |
--depth quick | Check only the exact location referenced in the finding. |
--depth standard | Check the location + immediate callers and related code paths. |
--depth deep | Standard + verify no variant of the vulnerability was introduced nearby. |
--depth expert | Deep + attempt to construct a proof-of-concept that bypasses the fix. |
--severity | Only verify findings at or above this severity. |
--format | Default text. Use json for structured verification results. |
Resolve which findings need verification:
INJ-001. Load from .appsec/findings.json.fix-applied that have not yet been verified.location.file falls within the resolved scope.fix-applied findings.If no findings match, inform the user. If findings exist but none have fix-applied status, suggest running /appsec:fix first.
For each finding to verify:
scanner.name) or by Claude analysis?Apply the same detection method that found the original vulnerability:
If scanner.name is present and the scanner is available:
Scanner version awareness: If the scanner version or configuration has changed since the original detection, note this in the verification result: FIXED (note: scanner version changed since original detection — re-verify recommended). This prevents false FIXED verdicts from rule changes.
If the finding was detected by Claude analysis (no scanner, or scanner not available):
At --depth deep and above, look for ways the fix might be circumvented:
For each finding, output one of two verdicts:
## FIXED: <Finding ID> - <Title>
**Status**: FIXED
**Verified at**: <timestamp>
**Method**: <scanner re-run | code analysis>
The vulnerability at `<file>:<line>` has been resolved.
**What changed**: <1-2 sentence summary of the fix>
**Confidence**: <high|medium> -- <why>
## STILL VULNERABLE: <Finding ID> - <Title>
**Status**: STILL VULNERABLE
**Verified at**: <timestamp>
**Method**: <scanner re-run | code analysis>
The vulnerability at `<file>:<line>` has NOT been resolved.
**Reason**: <specific explanation of why the fix is insufficient>
**Remaining issue**: <what still needs to change>
**Suggestion**: <concrete next step to actually fix it>
Update each finding in .appsec/findings.json:
verified-fixed. Add verified_at timestamp and verification.method.fix-failed. Add verification.reason explaining why. Preserve the original finding so /appsec:fix can be re-run.Copy verified-fixed findings to .appsec/fixed-history.json for regression tracking (used by /appsec:regression).
After verifying all targeted findings, output a summary:
## Verification Summary
| Finding | Status | Confidence |
|---------|--------|------------|
| INJ-001 | FIXED | High |
| AC-003 | STILL VULNERABLE | High |
Verified: N/M findings fixed. N still require remediation.
Verification results reference the original finding but add verification metadata.
metadata.tool: "verify"Finding ID prefix: VER (e.g., VER-001) only for new issues discovered during verification (e.g., the fix introduced a different vulnerability).
Findings follow ../../shared/schemas/findings.md.