Skip to content

chore(deps): update module golang.org/x/crypto to v0.52.0 [security]#2727

Open
redhat-renovate-bot wants to merge 1 commit into
mainfrom
renovate/go-golang.org-x-crypto-vulnerability
Open

chore(deps): update module golang.org/x/crypto to v0.52.0 [security]#2727
redhat-renovate-bot wants to merge 1 commit into
mainfrom
renovate/go-golang.org-x-crypto-vulnerability

Conversation

@redhat-renovate-bot
Copy link
Copy Markdown
Collaborator

@redhat-renovate-bot redhat-renovate-bot commented May 22, 2026

This PR contains the following updates:

Package Type Update Change
golang.org/x/crypto indirect minor v0.50.0v0.52.0

Invoking client can cause server deadlock on unexpected responses in golang.org/x/crypto/ssh

CVE-2026-39830 / GO-2026-5017

More information

Details

A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking infinite loop on large channel writes in golang.org/x/crypto/ssh

CVE-2026-39834 / GO-2026-5020

More information

Details

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking pathological RSA/DSA parameters may cause DoS in golang.org/x/crypto/ssh

CVE-2026-39829 / GO-2026-5018

More information

Details

The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking key constraints not enforced in golang.org/x/crypto/ssh/agent

CVE-2026-39833 / GO-2026-5005

More information

Details

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking byte arithmetic causes underflow and panic in golang.org/x/crypto/ssh

CVE-2026-46597 / GO-2026-5013

More information

Details

An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking auth bypass via unenforced @​revoked status in golang.org/x/crypto/ssh/knownhosts

CVE-2026-42508 / GO-2026-5021

More information

Details

Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @​revoked.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking memory leak when rejecting channels can lead to DoS in golang.org/x/crypto/ssh

CVE-2026-39827 / GO-2026-5016

More information

Details

An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking agent constraints dropped when forwarding keys in golang.org/x/crypto/ssh/agent

CVE-2026-39832 / GO-2026-5006

More information

Details

When adding a key to a remote agent constraint extensions such as restrict-destination-v00@​openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking bypass of FIDO/U2F security keys physical interaction in golang.org/x/crypto/ssh

CVE-2026-39831 / GO-2026-5019

More information

Details

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@​openssh.com, sk-ssh-ed25519@​openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking bypass of certificate restrictions in golang.org/x/crypto/ssh

CVE-2026-39828 / GO-2026-5014

More information

Details

When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking server panic during CheckHostKey/Authenticate in golang.org/x/crypto/ssh

CVE-2026-39835 / GO-2026-5015

More information

Details

SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking VerifiedPublicKeyCallback permissions skip enforcement in golang.org/x/crypto/ssh

CVE-2026-46595 / GO-2026-5023

More information

Details

Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Invoking pathological inputs can lead to client panic in golang.org/x/crypto/ssh/agent

CVE-2026-46598 / GO-2026-5033

More information

Details

For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Signed-off-by: redhat-renovate-bot <redhat-internal-renovate@redhat.com>
@redhat-renovate-bot redhat-renovate-bot added the release-note-none Denotes a PR that doesn't merit a release note. label May 22, 2026
@redhat-renovate-bot
Copy link
Copy Markdown
Collaborator Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 4 additional dependencies were updated

Details:

Package Change
golang.org/x/net v0.53.0 -> v0.54.0
golang.org/x/sys v0.43.0 -> v0.45.0
golang.org/x/term v0.42.0 -> v0.43.0
golang.org/x/text v0.36.0 -> v0.37.0

@kubevirt-bot kubevirt-bot added the dco-signoff: yes Indicates the PR's author has DCO signed all their commits. label May 22, 2026
@kubevirt-bot kubevirt-bot requested review from oshoval and qinqon May 22, 2026 08:49
@kubevirt-bot
Copy link
Copy Markdown
Collaborator

[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 oshoval 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

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates several golang.org/x dependencies and refactors internal implementations, including migrating hkdf and pbkdf2 to the standard library and refactoring http2 to wrap the standard library's implementation for Go 1.27+. It also enhances SSH security with key size limits and 'no-touch-required' support, updates IDNA for Unicode 16.0.0, and adds support for new CPU features and syscalls. Feedback identifies a high-severity risk of silent data loss in the SSH channel's SendRequest method, where the new draining logic may inadvertently consume buffered channel data from the shared message channel.

Comment on lines +634 to +641
drain:
for {
select {
case <-ch.msg:
default:
break drain
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The new draining logic in SendRequest blindly consumes all messages from ch.msg. Since ch.msg is shared between request responses and channel data (e.g., *channelDataMsg), this can lead to silent data loss if data packets are buffered in the channel when SendRequest is called. A more selective drain that only discards *channelRequestSuccessMsg or *channelRequestFailureMsg would be safer, although even that is tricky due to the lack of a "peek" or "un-read" operation on Go channels. Given that sentRequestPending now prevents unsolicited responses from entering the channel, the necessity of this drain should be re-evaluated against the risk of data loss.

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

Labels

dco-signoff: yes Indicates the PR's author has DCO signed all their commits. release-note-none Denotes a PR that doesn't merit a release note. size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants