helpers/skills/cve-verify/SKILL.md
Use this skill to verify that a CVE fix actually resolved the vulnerability by scanning the compiled binary or updated manifests. Catches transitive dep overrides, replace directives, and lockfile conflicts. Writes result to autofix-output/cve-verify-result.json.
npx skillsauth add opendatahub-io/ai-helpers cve-verifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
After a fix is applied by /cve-fix-apply, verify the CVE is actually resolved
by scanning the compiled output. Source-level scans can give false negatives
when transitive dependencies override the fixed version at build time.
Run scripts/verify.sh which builds the binary (Go) or regenerates lockfiles
(Node.js) and re-scans for the CVE:
bash scripts/verify.sh "${REPO_DIR}" "${CVE_ID}" "${LANG}" "${TARGET_GO_VERSION:-}" "${BUILD_LOCATION:-.}"
The script:
govulncheck -mode binary (gold standard).
Falls back to source scan if build fails.npm auditpip-auditautofix-output/cve-verify-result.jsonRead autofix-output/cve-verify-result.json and evaluate the verdict field.
| Verdict | Meaning |
|---------|---------|
| fixed | CVE no longer detected — safe to create PR |
| still_present | CVE still detected after fix — do NOT create PR |
| scan_failed | Verification scan could not run — manual review needed |
Use judgment for edge cases:
still_present: the fix was insufficient. This can happen with transitive
dependency conflicts, Go replace directives overriding the fix, or lockfile
conflicts. Do NOT create a PR — add a Jira comment explaining the fix was
attempted but CVE persists, manual investigation is required.scan_failed: check the scan_output_summary for the root cause. If the
build failed due to the fix itself (e.g., incompatible version), the fix
approach may need to change.The orchestrator reads verdict:
fixed → push branch, create PRstill_present → do NOT create PR, add Jira comment explaining fix was insufficientscan_failed → skip with documentation, manual review neededstill_present verdict means do NOT create a PR — post a Jira comment instead explaining the fix was attempted but the CVE persistsdevelopment
Run hexora static analysis on a Python package repository to detect suspicious code patterns, then triage findings with deterministic rules and AI reasoning to produce a structured risk report section.
development
Inspect recent git history of a Python package repository for suspicious commits touching supply-chain-sensitive files, then triage findings with AI reasoning to produce a structured risk report section.
development
Scan a Python package repository for compiled/binary files using Fromager-style detection and malcontent YARA analysis, then triage findings with deterministic rules and AI reasoning to produce a structured risk report section.
testing
Use this skill to identify non-Red Hat RPM packages installed in container images or on the local machine. For containers, pulls images across multiple architectures and release tags; for local scans, inspects the host directly. Extracts RPM signing metadata and reports packages not signed with the Red Hat GPG key as CSV output. Use when auditing compliance, checking supply-chain provenance, or scanning for third-party RPMs in RHOAI component images.