Skip to content

fix: clear image CVEs (Go 1.26.10, x/crypto, go-jose v4) + fix-cves skill - #41

Merged
orymate merged 5 commits into
mainfrom
fix/cve-go-1.26.10-go-jose-v4
Nov 4, 2026
Merged

orymate merged 5 commits into
mainfrom
fix/cve-go-1.26.10-go-jose-v4

Conversation

@orymate

@orymate orymate commented Nov 4, 2026

Copy link
Copy Markdown
Member

Clears every Trivy finding on the published 0.7.0 image except one informational notice, and adds a skill that records the routine.

CVE fixes

Commit Change Clears
Go toolchain 1.26.6 → 1.26.10 (.go-version, go.mod, builder image by digest) CVE-2026-111943, -78667, -78669, -97031 (HIGH) + 10 MEDIUM/LOW
golang.org/x/crypto v0.55.0 → v0.58.0 (x/sys → v0.49.0) CVE-2026-56855, CVE-2026-78662 (MEDIUM, x/crypto/ssh, not imported)
go-jose v3.0.5 → v4.1.8 CVE-2026-116587 (HIGH), CVE-2026-116585, CVE-2026-116586

go-jose v3 has no fix for these advisories; only v4 does. /oidc/userinfo parses an unauthenticated bearer token with go-jose, so the parser is reachable. v4 deprecates ParseSigned, so the token is now parsed with ParseSignedCompact and only RS256 is allowed — the only algorithm the provider signs with.

Left open: GO-2026-5932 (x/crypto/openpgp unmaintained notice, severity UNKNOWN, not imported, no tagged fix).

Rebase note: PRs that add jose.ParseSigned calls (#29, #13) need the v4 import and ParseSignedCompact(…, []jose.SignatureAlgorithm{jose.RS256}) after this merges.

Docs and skill

  • CLAUDE.md: just verify runs lint, license check and tests; it does not run editorconfig.
  • .claude/skills/fix-cves/SKILL.md: scan the latest release with Trivy, check reachability with govulncheck, triage, one commit per package behind the repo gates, rescan twice on the same DB.

Verification

  • just verify, just test-race, just test-e2e (23 tests): pass.
  • just image, then Trivy 0.69.3 twice on the local image (DB 2026-11-04T07:16Z): identical results, 0 CRITICAL/HIGH/MEDIUM/LOW; the Go binary still lists its packages.
  • govulncheck: 0 called vulnerabilities (was 10).

🤖 Generated with Claude Code

orymate and others added 5 commits November 4, 2026 13:56
The Trivy scan of the published 0.7.0 image flags Go standard-library
CVEs in the binary, built with Go 1.26.6. HIGH:

  CVE-2026-111943  crypto/x509   fixed in 1.26.10
  CVE-2026-78667   net/http      fixed in 1.26.9
  CVE-2026-78669   net/http      fixed in 1.26.9
  CVE-2026-97031   crypto/tls    fixed in 1.26.9

plus ten MEDIUM/LOW ones fixed in 1.26.9, among them the html/template
context-tracking fixes that govulncheck reports as called.

Bump .go-version, the go.mod go directive, and the builder image in the
Dockerfile (golang:1.26.10-alpine3.24, pinned by digest).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-78662

golang.org/x/crypto v0.55.0 carries two MEDIUM x/crypto/ssh denial-of-
service CVEs (CVE-2026-56855, CVE-2026-78662), fixed in v0.56.0. axoidp
does not import x/crypto/ssh, so neither is reachable; the bump keeps the
image scan clean. go mod tidy also bumped golang.org/x/sys v0.47.0 ->
v0.49.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
go-jose v3 carries three denial-of-service advisories with no v3 fix:

  CVE-2026-116587  HIGH    GHSA-mgcc-cww5-fp2q  RSA parameters in JWKs   v4.1.6
  CVE-2026-116585  MEDIUM  GHSA-4w3g-jfj2-cw2q  CBC-HMAC panic           v4.1.5
  CVE-2026-116586  MEDIUM  GHSA-vvm8-gf78-28g4  JSON parsing panics      v4.1.5

/oidc/userinfo parses the unauthenticated bearer token with go-jose, so
the parser is reachable by any client.

v4 deprecates ParseSigned for ParseSignedCompact, which also takes the
allowed signature algorithms. Tokens are compact JWS signed with RS256
only, so accept exactly that.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The verify recipe runs lint-go, license-check and test; editor-config is
a separate recipe that neither verify nor CI runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Encodes the routine: scan the latest release image with Trivy, check
reachability with govulncheck, triage into a Go toolchain bump, a module
bump or a major-version migration, apply one commit per package behind
the repo gates, then rescan the local image twice on the same DB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@orymate
orymate requested a review from csatib02 November 4, 2026 14:40
@orymate
orymate merged commit d82a6c3 into main Nov 4, 2026
5 checks passed
@orymate
orymate deleted the fix/cve-go-1.26.10-go-jose-v4 branch November 4, 2026 17:14
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.

2 participants