Skip to content

feat(govulncheck): reachability-aware Go vulnerability scanner#250

Draft
BGebken wants to merge 1 commit into
mainfrom
feat/govulncheck-scanner
Draft

feat(govulncheck): reachability-aware Go vulnerability scanner#250
BGebken wants to merge 1 commit into
mainfrom
feat/govulncheck-scanner

Conversation

@BGebken

@BGebken BGebken commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Why

A Go project (OPA) scan surfaced CVEs that turned out to be false positives — the vulnerable code paths weren't reachable. The upstream maintainer's guidance: "in future, please consider using govulncheck to verify."

Every vuln scanner Argus runs against Go today is presence-based — grype/trivy (container) and osv (lockfile) flag a CVE whenever the vulnerable package is in the dependency graph, regardless of whether the vulnerable symbol is ever called. gosec is Go SAST (code patterns), not dependency-CVE reachability. So Argus had no way to filter the "imported but never called" false-positive class.

govulncheck is Go's official scanner and is reachability-aware: it builds the program call graph from source and reports a vulnerability only when the affected symbol is actually reachable. This PR adds it as a first-class scanner so that verification is automated in the pipeline rather than a manual afterthought.

What

SDK scannerargus/scanners/govulncheck.py (category=sca, languages=[go]):

  • Runs govulncheck -json ./... and parses govulncheck's concatenated-JSON message stream (it's not a single document), correlating each finding with its osv record and collapsing per-level findings into one Finding per vuln.
  • Two finding tiers:
    • Called / reachable → real (OSV-derived) severity, gates on fail_on_severity. Carries the reconstructed call stack (metadata.call_stack) + metadata.vulnerable_symbol.
    • Imported, not calledINFO, metadata.reachable: false, titled [imported, not called]. Visible for audit, never gates — this is the false-positive class, surfaced transparently instead of as an actionable CVE.

Composite action.github/actions/scanner-govulncheck/ sets up Go, installs govulncheck (no official binary/image exists upstream — it ships via go install), and runs through the SDK like every other scanner.

Image — pinned CUSTOM_IMAGES entry + docker/Dockerfile.govulncheck (golang base + pinned govulncheck, WORKDIR /workspace, Go caches redirected to /tmp since /workspace mounts read-only). Per the agreed scope: code-only — the release pipeline builds/publishes the image, so the digest is a placeholder for now (zero sha256) and the comment says so; until first publish the scanner runs from a locally-installed govulncheck (the SDK prefers the local binary).

Plumbingrun_subprocess_scan gains an optional cwd= (govulncheck resolves ./... against the working directory). scan() sets cwd=path; the container path gets the same anchor from the image's WORKDIR /workspace (the engine sets no -w). Backward-compatible: cwd defaults to None, unchanged for every other scanner.

Design notes

  • Severity / UNKNOWN: Go advisories (GO-YYYY-NNNN) frequently carry no CVSS, so a reachable finding may be UNKNOWN severity. That's a Go vuln-DB limitation, not a parse bug — documented, with the recommendation to pair govulncheck with osv when you need CVSS-derived gating. govulncheck's value here is the reachability signal.
  • Stdout, not a file: govulncheck has no -o flag — it streams to stdout. Both the SDK template (run_subprocess_scan) and the engine's container path already capture stdout into the results file, and parsing is exit-code-independent (govulncheck exits 3 when it finds vulns), so both execution paths work without special-casing.
  • No dead config knob: an early draft exposed a report_unreachable toggle, but parse_results receives only the output path in both the local and container paths (the engine calls it directly, bypassing scan()), so the flag couldn't work for container runs. Dropped it — unreachable findings are always emitted as INFO (transparent, never gating) rather than shipping a knob that works in one path and silently not the other.

Tests

21 cases in argus/tests/scanners/test_govulncheck.py (reachability tiers, severity mapping incl. UNKNOWN, streamed-JSON parsing, malformed-stream → parse_failed, empty-stream → [], build_args relative-pattern guard, cwd wiring, registry registration). New module at 99% coverage. Fixtures are realistic govulncheck -json streams.

The architecture-sync CI check passes. The only red in the container/linter test files is a pre-existing Windows path-separator bug (test_happy_path_extracts_files, test_workspace_is_resolved_to_absolute) confirmed to fail on clean main and untouched by this change.

Docs / AICaC

  • docs/scanners.md — new Dependency Scanners → govulncheck (Go) section (tiers table, severity note, relationship to gosec/osv).
  • .github/actions/scanner-govulncheck/README.md — action usage.
  • .ai/architecture.yaml — scanner entry.
  • .ai/errors.yaml — maps the "Go CVE false positive / code isn't used" symptom to the govulncheck remedy.
  • CLAUDE.md — Dependencies row.

Follow-up (out of scope here)

The custom image must be built + published and its digest pinned (release pipeline / Renovate), replacing the placeholder, before container-backed runs work without a local govulncheck.

🤖 Generated with Claude Code

Presence-based scanners (grype/trivy/osv) flag every known vuln in every
dependency in a Go module's graph, regardless of whether the vulnerable
symbol is ever called — the false-positive class that prompts no-op fix
PRs against upstreams whose maintainers point out "the code isn't used."

govulncheck builds the call graph from source and reports a vuln only when
the affected symbol is actually reachable. This adds it as a first-class
SDK scanner plus a composite action so the "verify with govulncheck" step
is automated in the pipeline.

Scanner (argus/scanners/govulncheck.py):
- category=sca, languages=[go]; runs `govulncheck -json ./...`.
- Parses govulncheck's concatenated-JSON message stream (not one doc),
  correlates finding↔osv by id, collapses per-level findings per vuln.
- Two tiers: reachable (real OSV severity, gates) and imported-but-not-
  called (INFO, metadata.reachable=false, never gates). Reachable findings
  carry the reconstructed call stack + vulnerable symbol in metadata.
- Go advisories often lack CVSS → reachable findings may be UNKNOWN
  severity (documented; pair with osv for CVSS gating).

Plumbing:
- run_subprocess_scan gains an optional cwd= (govulncheck resolves ./...
  against the working dir); scan() sets cwd=path. Container path uses the
  image's WORKDIR /workspace since the engine sets no -w. Backward-compat:
  cwd defaults to None (unchanged for every other scanner).
- Pinned CUSTOM_IMAGES entry (placeholder digest until first publish) +
  docker/Dockerfile.govulncheck (golang base, govulncheck, WORKDIR
  /workspace, writable Go caches under /tmp since /workspace is ro).
- Composite action sets up Go + installs govulncheck (no official image),
  then runs via the SDK like every other scanner.

Tests: 21 cases (reachability tiers, severity mapping, stream parsing,
malformed-stream→parse_failed, build_args/cwd wiring); module at 99%.

Docs/AICaC: docs/scanners.md Dependency Scanners section, action README,
.ai/architecture.yaml, and a .ai/errors.yaml entry mapping the Go
false-positive symptom to the govulncheck remedy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

E2E Test Coverage Report

Action E2E Test Status Notes
ai-summary ⚪ Exception Manual-only action - triggered via dedicated ai-summary.yml workflow with user-supplied PR number
comment-pr ⚪ Exception Utility action - tested indirectly by all scanner and linter actions
get-job-id ⚪ Exception Utility action - tested indirectly by other jobs
linter-dockerfile ✅ Tested
linter-javascript ✅ Tested
linter-json ✅ Tested
linter-python ✅ Tested
linter-terraform ✅ Tested
linter-yaml ✅ Tested
linting-summary ✅ Tested
parse-container-config ✅ Tested
parse-zap-config ✅ Tested
scanner-bandit ✅ Tested
scanner-checkov ✅ Tested
scanner-clamav ✅ Tested
scanner-codeql ✅ Tested
scanner-container ✅ Tested
scanner-container-summary ⚪ Exception Tested as part of scanner-container
scanner-dependency-review ✅ Tested
scanner-gitleaks ✅ Tested
scanner-govulncheck ❌ Missing Needs E2E test
scanner-opengrep ✅ Tested
scanner-osv ✅ Tested
scanner-supply-chain ✅ Tested
scanner-syft ✅ Tested
scanner-trivy-iac ✅ Tested
scanner-zap ✅ Tested
scanner-zap-summary ⚪ Exception Tested as part of scanner-zap
scn-detector ✅ Tested
security-summary ✅ Tested
setup-argus ✅ Tested

Summary

  • Total Actions: 31
  • Covered: 30
  • Missing E2E Tests: 1
  • Coverage: 96%

❌ Actions Missing E2E Tests

  • scanner-govulncheck

Action Required: Add E2E tests for the missing actions in test-actions.yml or add them to the exceptions list with justification.

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

🚀 Release Preview

📦 Version Update

Current: 1.4.0New: 1.5.0

📋 Changelog

1.5.0 (2026-06-09)

Features

  • govulncheck: add reachability-aware Go vulnerability scanner (8997af5)

🔍 Version Reference Coverage

✅ Version refs found: 352 across 117 files

All covered by release-it config.

✅ Actions that would be performed

  • 📝 Update CHANGELOG.md with new entries
  • 🏷️ Create git tag 1.5.0
  • 📤 Push changes and tag to repository
  • 📦 Create GitHub release

This preview is generated by running release-it --dry-run

@BGebken BGebken deployed to testpypi June 9, 2026 16:56 — with GitHub Actions Active
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

🔒 Argus Container Security Scan

Branch: feat/govulncheck-scanner
Commit: 19ecaf4

📊 Combined Findings Summary

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low 📦 Total 🔢 Unique
3 81 77 67 228 228

Scanned: 5 containers | Build Failures: 0

📦 Container Breakdown

Container Image 🚨 Crit ⚠️ High 🟡 Med 🔵 Low Total Unique Status
cli ghcr.io/huntridge-labs/argus/cli:19ecaf49d03c3938223008c0f068d1a3f357b9f9 1 62 41 4 108 108
scanner-bandit ghcr.io/huntridge-labs/argus/scanner-bandit:19ecaf49d03c3938223008c0f068d1a3f357b9f9 0 0 0 0 0 0
scanner-mumps ghcr.io/huntridge-labs/argus/scanner-mumps:19ecaf49d03c3938223008c0f068d1a3f357b9f9 0 0 0 0 0 0
scanner-opengrep ghcr.io/huntridge-labs/argus/scanner-opengrep:19ecaf49d03c3938223008c0f068d1a3f357b9f9 2 7 30 63 102 102
scanner-supply-chain ghcr.io/huntridge-labs/argus/scanner-supply-chain:19ecaf49d03c3938223008c0f068d1a3f357b9f9 0 12 6 0 18 18

🔍 Detailed Findings by Container

🚨 cli - 108 vulnerabilities (45 unique)

Image: ghcr.io/huntridge-labs/argus/cli:19ecaf49d03c3938223008c0f068d1a3f357b9f9

Combined (Deduplicated)

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total Unique
1 62 41 4 108 45
🔷 Trivy Scanner (108 findings, 43 unique)
CVE Severity Package Version Fixed
CVE-2025-68121 🚨 CRITICAL stdlib v1.24.11 1.24.13, 1.25.7, 1.26.0-rc.3
CVE-2026-32280 ⚠️ HIGH stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-32281 ⚠️ HIGH stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-32283 ⚠️ HIGH stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-33810 ⚠️ HIGH stdlib v1.26.1 1.26.2
CVE-2026-33811 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-33814 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39820 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39823 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39825 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39836 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-42499 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-42504 ⚠️ HIGH stdlib v1.26.1 1.25.11, 1.26.4
CVE-2025-61726 ⚠️ HIGH stdlib v1.24.11 1.24.12, 1.25.6
CVE-2026-25679 ⚠️ HIGH stdlib v1.24.11 1.25.8, 1.26.1
CVE-2026-32280 ⚠️ HIGH stdlib v1.24.11 1.25.9, 1.26.2
CVE-2026-32281 ⚠️ HIGH stdlib v1.24.11 1.25.9, 1.26.2
CVE-2026-32283 ⚠️ HIGH stdlib v1.24.11 1.25.9, 1.26.2
CVE-2026-33811 ⚠️ HIGH stdlib v1.24.11 1.25.10, 1.26.3
CVE-2026-33814 ⚠️ HIGH stdlib v1.24.11 1.25.10, 1.26.3
CVE-2026-39820 ⚠️ HIGH stdlib v1.24.11 1.25.10, 1.26.3
CVE-2026-39823 ⚠️ HIGH stdlib v1.24.11 1.25.10, 1.26.3
CVE-2026-39825 ⚠️ HIGH stdlib v1.24.11 1.25.10, 1.26.3
CVE-2026-39836 ⚠️ HIGH stdlib v1.24.11 1.25.10, 1.26.3
CVE-2026-42499 ⚠️ HIGH stdlib v1.24.11 1.25.10, 1.26.3
CVE-2026-42504 ⚠️ HIGH stdlib v1.24.11 1.25.11, 1.26.4
CVE-2026-46680 ⚠️ HIGH github.com/containerd/containerd/v2 v2.2.2 2.0.9, 2.2.4, 2.3.1
CVE-2026-34040 ⚠️ HIGH github.com/docker/docker v28.5.2+incompatible 29.3.1
CVE-2026-41567 ⚠️ HIGH github.com/docker/docker v28.5.2+incompatible N/A
CVE-2026-42306 ⚠️ HIGH github.com/docker/docker v28.5.2+incompatible N/A
CVE-2026-44973 ⚠️ HIGH github.com/go-git/go-billy/v5 v5.8.0 5.9.0
CVE-2026-45022 ⚠️ HIGH github.com/go-git/go-git/v5 v5.18.0 5.19.0
CVE-2026-33811 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-33814 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39820 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39823 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39825 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39836 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-42499 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-42504 ⚠️ HIGH stdlib v1.26.2 1.25.11, 1.26.4
CVE-2026-46680 ⚠️ HIGH github.com/containerd/containerd/v2 v2.2.2 2.0.9, 2.2.4, 2.3.1
CVE-2026-44973 ⚠️ HIGH github.com/go-git/go-billy/v5 v5.8.0 5.9.0
CVE-2026-45022 ⚠️ HIGH github.com/go-git/go-git/v5 v5.18.0 5.19.0
CVE-2026-33811 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-33814 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39820 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39823 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39825 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-39836 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3
CVE-2026-42499 ⚠️ HIGH stdlib v1.26.2 1.25.10, 1.26.3

...and 58 more

⚓ Grype Scanner (0 findings, 0 unique)

✅ No vulnerabilities detected by Grype

scanner-bandit - 0 vulnerabilities (0 unique)

Image: ghcr.io/huntridge-labs/argus/scanner-bandit:19ecaf49d03c3938223008c0f068d1a3f357b9f9

Combined (Deduplicated)

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total Unique
0 0 0 0 0 0
🔷 Trivy Scanner (0 findings, 0 unique)

✅ No vulnerabilities detected by Trivy

⚓ Grype Scanner (0 findings, 0 unique)

✅ No vulnerabilities detected by Grype

scanner-mumps - 0 vulnerabilities (0 unique)

Image: ghcr.io/huntridge-labs/argus/scanner-mumps:19ecaf49d03c3938223008c0f068d1a3f357b9f9

Combined (Deduplicated)

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total Unique
0 0 0 0 0 0
🔷 Trivy Scanner (0 findings, 0 unique)

✅ No vulnerabilities detected by Trivy

⚓ Grype Scanner (0 findings, 0 unique)

✅ No vulnerabilities detected by Grype

🚨 scanner-opengrep - 106 vulnerabilities (49 unique)

Image: ghcr.io/huntridge-labs/argus/scanner-opengrep:19ecaf49d03c3938223008c0f068d1a3f357b9f9

Combined (Deduplicated)

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total Unique
2 7 30 63 106 49
🔷 Trivy Scanner (106 findings, 48 unique)
CVE Severity Package Version Fixed
CVE-2026-42496 🚨 CRITICAL perl-base 5.40.1-6 N/A
CVE-2026-8376 🚨 CRITICAL perl-base 5.40.1-6 N/A
CVE-2025-69720 ⚠️ HIGH libncursesw6 6.5+20250216-2 N/A
CVE-2025-69720 ⚠️ HIGH libtinfo6 6.5+20250216-2 N/A
CVE-2025-69720 ⚠️ HIGH ncurses-base 6.5+20250216-2 N/A
CVE-2025-69720 ⚠️ HIGH ncurses-bin 6.5+20250216-2 N/A
CVE-2026-42497 ⚠️ HIGH perl-base 5.40.1-6 N/A
CVE-2026-48962 ⚠️ HIGH perl-base 5.40.1-6 N/A
CVE-2026-9538 ⚠️ HIGH perl-base 5.40.1-6 N/A
CVE-2026-27456 🟡 MEDIUM bsdutils 1:2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM bsdutils 1:2.41-5 N/A
CVE-2026-27456 🟡 MEDIUM libblkid1 2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM libblkid1 2.41-5 N/A
CVE-2026-5435 🟡 MEDIUM libc-bin 2.41-12+deb13u3 N/A
CVE-2026-5450 🟡 MEDIUM libc-bin 2.41-12+deb13u3 N/A
CVE-2026-5928 🟡 MEDIUM libc-bin 2.41-12+deb13u3 N/A
CVE-2026-6238 🟡 MEDIUM libc-bin 2.41-12+deb13u3 N/A
CVE-2026-5435 🟡 MEDIUM libc6 2.41-12+deb13u3 N/A
CVE-2026-5450 🟡 MEDIUM libc6 2.41-12+deb13u3 N/A
CVE-2026-5928 🟡 MEDIUM libc6 2.41-12+deb13u3 N/A
CVE-2026-6238 🟡 MEDIUM libc6 2.41-12+deb13u3 N/A
CVE-2026-27456 🟡 MEDIUM liblastlog2-2 2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM liblastlog2-2 2.41-5 N/A
CVE-2026-34743 🟡 MEDIUM liblzma5 5.8.1-1 N/A
CVE-2026-27456 🟡 MEDIUM libmount1 2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM libmount1 2.41-5 N/A
CVE-2026-27456 🟡 MEDIUM libsmartcols1 2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM libsmartcols1 2.41-5 N/A
CVE-2026-27456 🟡 MEDIUM libuuid1 2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM libuuid1 2.41-5 N/A
CVE-2026-27456 🟡 MEDIUM login 1:4.16.0-2+really2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM login 1:4.16.0-2+really2.41-5 N/A
CVE-2026-27456 🟡 MEDIUM mount 2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM mount 2.41-5 N/A
CVE-2026-7010 🟡 MEDIUM perl-base 5.40.1-6 N/A
CVE-2026-5704 🟡 MEDIUM tar 1.35+dfsg-3.1 N/A
CVE-2026-27456 🟡 MEDIUM util-linux 2.41-5 N/A
CVE-2026-3184 🟡 MEDIUM util-linux 2.41-5 N/A
CVE-2026-27171 🟡 MEDIUM zlib1g 1:1.3.dfsg+really1.3.1-1+b1 N/A
CVE-2011-3374 🔵 LOW apt 3.0.3 N/A
TEMP-0841856-B18BAF 🔵 LOW bash 5.2.37-2+b9 N/A
CVE-2022-0563 🔵 LOW bsdutils 1:2.41-5 N/A
CVE-2025-14104 🔵 LOW bsdutils 1:2.41-5 N/A
CVE-2017-18018 🔵 LOW coreutils 9.7-3 N/A
CVE-2025-5278 🔵 LOW coreutils 9.7-3 N/A
CVE-2011-3374 🔵 LOW libapt-pkg7.0 3.0.3 N/A
CVE-2022-0563 🔵 LOW libblkid1 2.41-5 N/A
CVE-2025-14104 🔵 LOW libblkid1 2.41-5 N/A
CVE-2010-4756 🔵 LOW libc-bin 2.41-12+deb13u3 N/A
CVE-2018-20796 🔵 LOW libc-bin 2.41-12+deb13u3 N/A

...and 56 more

⚓ Grype Scanner (0 findings, 0 unique)

✅ No vulnerabilities detected by Grype

⚠️ scanner-supply-chain - 18 vulnerabilities (18 unique)

Image: ghcr.io/huntridge-labs/argus/scanner-supply-chain:19ecaf49d03c3938223008c0f068d1a3f357b9f9

Combined (Deduplicated)

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total Unique
0 12 6 0 18 18
🔷 Trivy Scanner (18 findings, 18 unique)
CVE Severity Package Version Fixed
CVE-2026-32280 ⚠️ HIGH stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-32281 ⚠️ HIGH stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-32283 ⚠️ HIGH stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-33810 ⚠️ HIGH stdlib v1.26.1 1.26.2
CVE-2026-33811 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-33814 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39820 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39823 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39825 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-39836 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-42499 ⚠️ HIGH stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-42504 ⚠️ HIGH stdlib v1.26.1 1.25.11, 1.26.4
CVE-2026-27145 🟡 MEDIUM stdlib v1.26.1 1.25.11, 1.26.4
CVE-2026-32282 🟡 MEDIUM stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-32288 🟡 MEDIUM stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-32289 🟡 MEDIUM stdlib v1.26.1 1.25.9, 1.26.2
CVE-2026-39826 🟡 MEDIUM stdlib v1.26.1 1.25.10, 1.26.3
CVE-2026-42507 🟡 MEDIUM stdlib v1.26.1 1.25.11, 1.26.4
⚓ Grype Scanner (0 findings, 0 unique)

✅ No vulnerabilities detected by Grype


Generated by Argus

@codecov

codecov Bot commented Jun 9, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.14530% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
argus/scanners/govulncheck.py 99.13% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@BGebken

BGebken commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

Drafted this up - not sure if it makes sense though, per discussion thread

@BGebken BGebken marked this pull request as draft June 9, 2026 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant