Skip to content

OCPBUGS-92651: Replace golang.org/x/crypto with github.com/openshift-sustaining/crypto v0.48.0-sec.3 to mitigate CVE-2026-39832 (release-4.21) - #10824

Open
alexissolanas wants to merge 1 commit into
openshift:release-4.21from
alexissolanas:OCPBUGS-92651-in-release-4.21
Open

OCPBUGS-92651: Replace golang.org/x/crypto with github.com/openshift-sustaining/crypto v0.48.0-sec.3 to mitigate CVE-2026-39832 (release-4.21)#10824
alexissolanas wants to merge 1 commit into
openshift:release-4.21from
alexissolanas:OCPBUGS-92651-in-release-4.21

Conversation

@alexissolanas

@alexissolanas alexissolanas commented Aug 27, 2026

Copy link
Copy Markdown

Summary

CVE Details

  • CVE: CVE-2026-39832
  • Component: ose-baremetal-installer
  • Package: golang.org/x/crypto
  • Affected: < v0.5.2
  • Risk Level: MEDIUM
  • Jira: OCPBUGS-92651

Go version constraint: All fixed upstream versions (>= v0.5.2) require go 1.25.
A replace directive pointing to the openshift-sustaining backport fork is used instead.

Changes

go.mod: +replace golang.org/x/crypto => github.com/openshift-sustaining/crypto v0.48.0-sec.3
go.sum: updated checksums
vendor/golang.org/x/crypto/ssh/agent/client.go
vendor/golang.org/x/crypto/ssh/agent/keyring.go
vendor/golang.org/x/crypto/ssh/cipher.go
vendor/golang.org/x/crypto/ssh/keys.go
vendor/modules.txt: +# golang.org/x/crypto v0.48.0 => github.com/openshift-sustaining/crypto v0.48.0-sec.3

Test Results

  •  go build ./...  : succeeds
  •  grep '^go ' go.mod : unchanged (no Go version bump)

CVE-2026-39832 golang.org/x/crypto/ssh/agent: Security bypass due to improper handling of key restrictions

  - Vulnerable package: golang.org/x/crypto v0.48.0
  - Fixed via replace: github.com/openshift-sustaining/crypto v0.48.0-sec.3
  - Risk level: MEDIUM
  - Go version conflict: golang.org/x/crypto v0.5.2 requires go1.25; mitigated via backport fork
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Aug 27, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@alexissolanas: This pull request references Jira Issue OCPBUGS-92651, which is invalid:

  • expected Jira Issue OCPBUGS-92651 to depend on a bug targeting a version in 4.22.0 and in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but no dependents were found

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Summary

CVE Details

  • CVE: SCVE
  • Component: ose-baremetal-installer
  • Package: golang.org/x/crypto
  • Affected: < v0.5.2
  • Risk Level: MEDIUM
  • Jira: OCPBUGS-92651

Go version constraint: All fixed upstream versions (>= v0.5.2) require go 1.25.
A replace directive pointing to the openshift-sustaining backport fork is used instead.

Changes

go.mod: +replace golang.org/x/crypto => github.com/openshift-sustaining/crypto v0.48.0-sec.3
go.sum: updated checksums
vendor/golang.org/x/crypto/ssh/agent/client.go
vendor/golang.org/x/crypto/ssh/agent/keyring.go
vendor/golang.org/x/crypto/ssh/cipher.go
vendor/golang.org/x/crypto/ssh/keys.go
vendor/modules.txt: +# golang.org/x/crypto v0.48.0 => github.com/openshift-sustaining/crypto v0.48.0-sec.3

Test Results

  •  go build ./...  : succeeds
  •  grep '^go ' go.mod : unchanged (no Go version bump)

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 93b27266-9396-445f-8236-c7d2afd027ee

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@openshift-ci

openshift-ci Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign patrickdillon for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci

openshift-ci Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

@alexissolanas: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@jkaurredhat

Copy link
Copy Markdown
Contributor

/label backport-risk-assessed

@openshift-ci openshift-ci Bot added the backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. label Sep 1, 2026
@moebasim

moebasim commented Sep 7, 2026

Copy link
Copy Markdown

/jira refresh

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@moebasim: This pull request references Jira Issue OCPBUGS-92651, which is invalid:

  • expected Jira Issue OCPBUGS-92651 to depend on a bug targeting a version in 4.22.0 and in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but no dependents were found

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@barbacbd barbacbd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

v0.5.2 is a typo for < v0.52.0, repeated three times in the body. As written it's self-contradictory (v0.48.0 is already ≥ v0.5.2 under semver). Cosmetic, but it's the kind of thing that gets copied into a security errata.

@barbacbd barbacbd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

According to claude review:

  1. The PR fixes only half of CVE-2026-39833. Upstream landed two commits in keyring.go for that advisory: e3d1254 (reject unsupported constraint extensions) and 0fb843a (reject ConfirmBeforeUse). The fork takes the first and omits the second. AddedKey.ConfirmBeforeUse is still silently ignored by NewKeyring() — the caller believes they'll be prompted and won't be. That's the same class of silent-constraint-drop bug as the CVE this PR is fixing, in the same function. Worth pulling in; it's four lines.

  2. The description doesn't disclose three extra CVE backports. The fork also carries 8907318 + 9c2cd33 (RSA modulus / DSA parameter limits → CVE-2026-39829) and abbc44d (the int(padding+1) → int(padding)+1 overflow → CVE-2026-46597). These are good changes, but the body frames the PR as a single-CVE fix and lists the files without saying they contain unrelated security backports. For a release-branch security PR that's the thing a reviewer most needs stated.

  3. Twelve other v0.52.0 CVEs remain unfixed. v0.52.0 was a 13-CVE batch from the NCC Group review. The fork omits fixes in ssh/server.go, ssh/mux.go, ssh/channel.go, ssh/certs.go, ssh/client_auth.go, ssh/agent/server.go, ssh/knownhosts/, plus the FIDO/U2F user-presence enforcement in keys.go (CVE-2026-39831) and the CBC cbcMinPacketSize fix. Scoping to one CVE is a legitimate backport strategy — but it should be an explicit, stated decision, not something a reviewer discovers by diffing.

  4. The nested CAPI provider modules aren't covered. openshift/installer has separate go.mod/vendor trees under cluster-api/providers/, and on release-4.21 they pin: azurestack v0.33.0, ibmcloud v0.36.0, azure v0.42.0, aws/gcp v0.43.0, vsphere v0.45.0 — all below v0.52.0. azure and azurestack actually vendor golang.org/x/crypto/ssh. Those binaries ship in the installer image, so if this is scanner-driven remediation of ose-baremetal-installer, the component will still be flagged after this merges. Either those need the same replace, or the Jira should record why they're out of scope.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants