From odh-ai-helpers
Scans a cloned repository for a specific CVE using version-matched toolchains for Go, Node.js, and Python. Writes structured result to a JSON file for automated triage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/odh-ai-helpers:cve-scansonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scan a cloned repository to determine whether a specific CVE is present as an
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 silentlynpx claudepluginhub ikredhat/skills-registry --plugin odh-ai-helpersScans project dependencies for known CVEs across npm, pip, cargo, Go, and Java ecosystems. Reports vulnerable packages with severity, affected versions, and fixes.
Verifies that a CVE fix resolved the vulnerability by scanning compiled binaries and updated manifests. Catches transitive dep overrides and lockfile conflicts.
Scans code, dependencies, and configurations for security vulnerabilities including CVE detection, code-level flaws, and insecure defaults.