Skip to content

fix(deps): bump golang.org/x/crypto to v0.56.0 for CVE-2026-78662 and CVE-2026-56855 - #854

Merged
keelerm84 merged 3 commits into
v8from
fix-crypto-cves
Sep 3, 2026
Merged

keelerm84 merged 3 commits into
v8from
fix-crypto-cves

Conversation

@keelerm84

@keelerm84 keelerm84 commented Sep 3, 2026 •

Copy link
Copy Markdown
Member

Bumps golang.org/x/crypto from v0.55.0 to v0.56.0 to clear two CVEs disclosed after #848.

Why

Docker Scout Scan is currently failing on v8 itself (tip 31bc9637, scanned 2026-09-03), and on any open PR whose image gets rescanned. PRs that still show green only did so because their scans ran on 2026-09-01, before these advisories landed.

golang.org/x/crypto 0.55.0
  ✗ UNSPECIFIED CVE-2026-78662   Affected range: <0.56.0   Fixed version: 0.56.0
  ✗ UNSPECIFIED CVE-2026-56855   Affected range: <0.56.0   Fixed version: 0.56.0

CRITICAL 0   HIGH 0   MEDIUM 0   LOW 0   UNSPECIFIED 2

Both are UNSPECIFIED severity, but .github/workflows runs the scan with only-fixed: true and exit-code: true, so any advisory with an available fix fails the job.

Note on the go directive

This also raises go from 1.25.10 to 1.26.0. That is not optional — golang.org/x/crypto v0.56.0 declares go 1.26.0 as its own minimum, so the bump is required to build. The repo builds and tests against 1.26.7 and 1.27.0 (.github/variables/go-versions.env), both of which satisfy it, so no supported configuration is dropped.

Verification

  • go build ./... clean
  • go vet ./... clean (no new findings)
  • go test ./... — all 22 packages pass

Requirements

  • I have added test coverage for new or changed functionality — n/a, dependency bump only
  • I have followed the repository's pull request submission guidelines
  • I have validated my changes against all supported platform versions

🤖 Generated with Claude Code


Note

Overview
Security and toolchain update so Docker Scout and CI (only-fixed: true, exit-code: true) pass again after advisories on golang.org/x/crypto < 0.56.0 (CVE-2026-78662, CVE-2026-56855).

go.mod raises golang.org/x/crypto from v0.55.0 to v0.56.0 and the go directive from 1.25.10 to 1.26.0 (required because v0.56.0 declares Go 1.26.0 as its minimum). go.sum is updated for the new crypto module version.

In relay/relay.go, a //nolint:staticcheck is added on the client-side httputil.ReverseProxy Director callback, with a note that migrating to Rewrite would alter X-Forwarded-* handling—no proxy behavior change, only silencing a new or stricter lint on the deprecated field.

Reviewed by Cursor Bugbot for commit e03afb6. Bugbot is set up for automated code reviews on this repo. Configure here.

… CVE-2026-56855

Docker Scout is failing on v8 and on every open PR whose image is rescanned,
because two CVEs were disclosed against golang.org/x/crypto after the bump to
v0.55.0 in #848:

    golang.org/x/crypto 0.55.0
      CVE-2026-78662  affected <0.56.0  fixed 0.56.0
      CVE-2026-56855  affected <0.56.0  fixed 0.56.0

Both are reported with UNSPECIFIED severity, but the scan runs with
only-fixed: true and exit-code: true, so any fixable advisory fails the job.

This also raises the go directive from 1.25.10 to 1.26.0, which is not optional:
golang.org/x/crypto v0.56.0 declares go 1.26.0 as its own minimum. The repo
already builds and tests against 1.26.7 and 1.27.0, so both supported versions
satisfy it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@keelerm84
keelerm84 requested a review from a team as a code owner September 3, 2026 14:51
…ctive

Raising the go directive to 1.26.0 makes staticcheck enforce the Go 1.26
deprecation of httputil.ReverseProxy.Director, which fails make lint on all four
unit-test jobs.

Suppressed rather than migrated, deliberately. Rewrite is not a drop-in rename:
it does not append X-Forwarded-* headers unless SetXForwarded() is called, so
switching changes what the client-side goals proxy sends upstream. That deserves
its own PR and its own review rather than riding along on a CVE bump.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Comment thread relay/relay.go Outdated
Comment on lines 437 to 440
Director: func(req *http.Request) { //nolint:staticcheck // deprecated; see comment above
url := req.URL
url.Scheme = r.clientSideSDKBaseURL.Scheme
url.Host = r.clientSideSDKBaseURL.Host

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Semgrep identified an issue in your code:
ReverseProxy can remove headers added by Director. Consider using ReverseProxy.Rewrite instead of ReverseProxy.Director.

To resolve this comment:

🔧 No guidance has been designated for this issue. Fix according to your organization's approved methods.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by reverseproxy-director.

You can view more details about this finding in the Semgrep AppSec Platform.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@keelerm84
keelerm84 merged commit 6d5d346 into v8 Sep 3, 2026
16 checks passed
@keelerm84
keelerm84 deleted the fix-crypto-cves branch September 3, 2026 15:22
keelerm84 pushed a commit that referenced this pull request Sep 17, 2026
🤖 I have created a release *beep* *boop*
---


##
[8.22.0](v8.21.0...v8.22.0)
(2026-09-16)


### Features

* Adopt go-server-sdk v7.17.0 so an upstream 401 retries
([#856](#856))
([e152af7](e152af7))
* Back off big segment synchronization on a rejected SDK key
([#857](#857))
([6ede85b](6ede85b))
* Classify transport failures as normal, including certificate failures
([#873](#873))
([c3b6850](c3b6850))
* Keep retrying a rejected auto-configuration key
([#866](#866))
([4bf3bb9](4bf3bb9))
* Report the auto-configuration stream's health in the status resource
([#870](#870))
([5c1e3ee](5c1e3ee))


### Bug Fixes

* **autoconfig:** refresh stored environment defaults on update
(SEC-9484) ([#842](#842))
([e04e3e2](e04e3e2))
* **deps:** bump golang.org/x/crypto to v0.55.0 for CVE-2026-56854
([#848](#848))
([360d624](360d624))
* **deps:** bump golang.org/x/crypto to v0.56.0 for CVE-2026-78662 and
CVE-2026-56855
([#854](#854))
([6d5d346](6d5d346))
* **deps:** bump supported Go versions to 1.27.0 and 1.26.7
([#837](#837))
([9b4fb46](9b4fb46))
* **deps:** bump supported Go versions to 1.27.1 and 1.26.8
([#852](#852))
([4b06ed6](4b06ed6))
* emit Vary: Origin on CORS responses (SEC-9501)
([#844](#844))
([78a8f05](78a8f05))
* Report an incomplete DynamoDB auto-config cache write
([#874](#874))
([0964dc0](0964dc0))
* **security:** redact all credential-bearing URL components in status
dbServer ([#846](#846))
([20effc5](20effc5))
* **streams:** treat a nil replay result as no event instead of
panicking ([#845](#845))
([7d7eace](7d7eace))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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