Skip to content

build(deps): remediate fixable Go vulnerabilities - #214

Merged
mateeullahmalik merged 1 commit into
masterfrom
deps/govulncheck-phase1
Sep 1, 2026
Merged

mateeullahmalik merged 1 commit into
masterfrom
deps/govulncheck-phase1

Conversation

@mateeullahmalik

Copy link
Copy Markdown
Contributor

Summary

Remediate the currently fixable reachable Go vulnerabilities without changing Lumera application logic.

This updates both Go modules in the repository:

  • Go 1.26.2 → 1.26.6
  • google.golang.org/grpc v1.80.0 → v1.82.1
  • golang.org/x/text v0.37.0 → v0.39.0
  • github.com/consensys/gnark-crypto v0.18.0 → v0.18.1
  • solver-selected compatible transitive dependencies

Changed files are limited to:

  • go.mod
  • go.sum
  • tests/systemtests/go.mod
  • tests/systemtests/go.sum

This is intentionally separate from #212, which adds the strict govulncheck workflow.

Vulnerability result

The exact root scan (govulncheck ./...) drops from 22 reachable findings to 5, removing all 17 findings with published runtime/module fixes.

The remaining findings currently have no published fixed module release:

  • GO-2026-5932 — golang.org/x/crypto/openpgp
  • GO-2026-4740 — github.com/shamaton/msgpack/v2
  • GO-2026-4479 — github.com/pion/dtls/v2
  • GO-2025-3684 — github.com/cosmos/evm
  • GO-2024-2584 — github.com/cosmos/cosmos-sdk

No finding is suppressed or silently baselined. The strict scan will continue to expose these five until separate upstream/backport/replacement work resolves them.

The nested tests/systemtests module reports two reachable residual IDs: GO-2026-5932 and GO-2025-3684.

State-machine and upgrade safety

  • State keys changed: none
  • Keeper/protobuf/ante-handler/application source changes: none
  • CheckTx/DeliverTx/BeginBlock/EndBlock behavior changes: none intended
  • Migration required: no
  • Upgrade-handler impact: none
  • Replay/determinism: consensus determinism and restart/replay canary passed

Although this is dependency metadata only, it changes the compiled chain binary, so it was validated as a consensus-sensitive rollout candidate.

Validation

Passed locally with Go 1.26.6:

  • root and nested go mod tidy stability
  • go mod verify
  • build and install checksum parity
  • unit tests
  • integration tests, including EVM suites
  • 195 script tests
  • devnet common tests
  • system tests
  • extended system tests (1045.845s)
  • simulation tests
  • consensus determinism and restart/replay canary
  • lint (0 issues)
  • git diff --check

Fresh isolated runtime validation also passed:

  • five validators initialized and produced blocks without a halt
  • five EVM-native Supernodes registered with committed DeliverTx results
  • all five Supernode processes remained healthy and reachable
  • Cascade request committed on-chain
  • action reached ACTION_STATE_DONE
  • upload and download completed
  • downloaded 64 KiB payload matched the original SHA-256 byte-for-byte

Risk

Primary risk is behavioral drift from the Go runtime and transitive dependency graph despite no Lumera source changes. The determinism, replay, EVM, system, simulation, and fresh distributed-runtime checks above are intended to bound that risk.

The five no-fixed-version findings remain explicit security debt and require separate remediation; this PR must not be described as producing a zero-finding scan.

Rollback

Before rollout, revert this commit to restore the previous Go/module graph. No state rollback or migration rollback is required because this PR introduces no state transformation.

If a rollout-only incompatibility appears, stop rollout and restore the prior binary using the existing rolling/canary procedure. Chain state remains compatible.

Observability

No logging, metric, event, or alert behavior is intentionally changed. Existing consensus, transaction, Supernode, and Cascade signals were used for validation.

Update the Go patch release and fixed dependency versions in both the root and system-test modules. This removes 17 of 22 reachable govulncheck findings while preserving the five findings that do not yet have published fixed releases.
@mateeullahmalik

Copy link
Copy Markdown
Contributor Author

Phase 2 tracking for the five residual no-published-fix findings: #215

@mateeullahmalik
mateeullahmalik merged commit c67699f into master Sep 1, 2026
24 checks passed
@a-ok123
a-ok123 deleted the deps/govulncheck-phase1 branch September 24, 2026 01: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.

2 participants