helpers/skills/cve-scan/SKILL.md
Use this skill to scan a cloned repository for a specific CVE using version-matched toolchains. Supports Go (govulncheck with GOTOOLCHAIN), Node.js (npm audit), and Python (pip-audit). Writes scan result to autofix-output/cve-scan-result.json.
npx skillsauth add opendatahub-io/ai-helpers cve-scanInstall 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.
Scan a cloned repository to determine whether a specific CVE is present as an unfixed vulnerability. Uses language-appropriate scanning tools with version-matched toolchains for accurate results.
Run scripts/scan.sh which handles language detection, version-matched
toolchain selection, vulnerability scanning, package version checks, and
base image detection:
bash scripts/scan.sh "${REPO_DIR}" "${CVE_ID}" "${PACKAGE}" "${BUILD_LOCATION:-.}"
The script:
GOTOOLCHAIN set to that exact version, preventing false negatives from a
newer local toolchain. Falls back to local toolchain if download fails.npm audit --jsonpip-audit -r requirements.txtautofix-output/cve-scan-result.jsonRead autofix-output/cve-scan-result.json and evaluate the verdict field.
| Verdict | Meaning |
|---------|---------|
| present | CVE confirmed in scan — fix needed |
| present_by_version | Package in manifest at vulnerable version — fix needed |
| absent | Not in scan, not in manifests — VEX justification possible |
| in_base_image | Package not in app code, found in Dockerfile base image |
| informational | Go: module present but vulnerable symbol not called |
| scan_failed | Scanner could not run — manual review needed |
Use judgment to validate the verdict:
present_by_version: compare the manifest version against the CVE's
affected version range to confirm it is actually vulnerablein_base_image: determine whether a newer base image tag is available
using skopeo list-tags, or whether the base image team needs to actscan_failed: check the scan_output_summary for the root cause and
decide whether to retry or skipThe orchestrator (jira-autofix-cve-resolve) reads autofix-output/cve-scan-result.json
and routes based on verdict:
present / present_by_version → invoke /cve-fix-applyabsent / informational → invoke /cve-vex-assessin_base_image → check for newer base image tag, create PR or documentscan_failed → skip with documentationgo1.25.0, not go1.25); omitting the patch segment causes the download to fail silentlydevelopment
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.