Skip to main content

golang.org/x/crypto/ssh EUVDEUVD-2026-31400

| CVE-2026-39834 CRITICAL
Integer Overflow or Wraparound (CWE-190)
2026-05-22 Go GHSA-rm3j-f69w-wqmq
Critical
Disputed · 9.1 Vendor: Go
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Establish SSH channel with vulnerable Go peer
  2. Delivery
    Induce application to Write >4GB payload
  3. Exploit
    Integer overflow truncates size comparison
  4. Execution
    Write loop spins emitting empty packets
  5. Impact
    CPU exhaustion and stalled connection (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The vulnerable application must perform a single Write call larger than 4GB (2^32 bytes) on an SSH channel using golang.org/x/crypto/ssh prior to 0.52.0; smaller writes, or large transfers broken into multiple sub-4GB Write calls, do not trigger the overflow. Limiting factors: the trigger depends on the calling application's I/O pattern rather than purely attacker-controlled SSH frames, so an attacker generally needs to operate against a service that legitimately accepts or transfers very large payloads in one syscall (bulk SFTP, large blob streaming) and must either be the peer of the SSH connection or coerce the application into such a write. CVSS PR:N indicates no SSH authentication is enumerated as required by the metric, but in practice most SSH services require authentication before a channel is open and writable.

Impact

Signals diverge significantly here: CVSS v3.1 9.1 (AV:N/AC:L/PR:N/UI:N/C:N/I:H/A:H) reflects high integrity and availability impact reachable over the network without authentication, while EPSS is only 0.02% (5th percentile), SSVC reports Exploitation:none with Technical Impact:partial, and the issue is not on the CISA KEV list. The CVSS integrity:high rating is questionable given the bug only causes a stuck loop sending empty packets - this is fundamentally an availability/DoS condition, not an integrity compromise, so the score likely overstates real-world impact. Exploitation also requires the application to legitimately attempt a single Write of more than 4GB on an SSH channel, which is uncommon in typical SSH usage patterns and depends entirely on application behavior rather than attacker-controlled SSH protocol input. Realistic priority is moderate: patch in standard maintenance cycles for any Go service handling large transfers (e.g., SFTP servers, backup tooling), but this is not an emergency.

Exploit ScenarioDerived

An attacker controlling one side of an SSH session (e.g., a malicious SFTP client uploading to a vulnerable Go-based SFTP server, or a malicious server responding to a Go SSH client) induces or waits for the peer application to issue a single Write of more than 4GB on an SSH channel, after which the writer goroutine locks into an infinite loop emitting empty packets and consuming CPU while making no progress. No public exploit is identified at time of analysis, and successful triggering depends on the victim application's write patterns rather than attacker-supplied SSH protocol data alone.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 28, 2026

Denial of service in the Go golang.org/x/crypto/ssh package (versions prior to 0.52.0) occurs when an application writes more than 4GB of data in a single Write call on an SSH channel, triggering an integer overflow in the internal payload size calculation that causes the write loop to spin indefinitely while emitting empty packets. The flaw affects any Go application using this SSH library for large data transfers and is patched upstream with a release in version 0.52.0; no public exploit identified at time of analysis and EPSS probability is very low at 0.02%.

RemediationAI

Upgrade golang.org/x/crypto to version 0.52.0 or later (Vendor-released patch: 0.52.0) by running 'go get golang.org/x/crypto@v0.52.0' and rebuilding all affected binaries, as referenced in the upstream change https://go.dev/cl/781663 and tracking issue https://go.dev/issue/79567. Because Go programs statically embed dependencies, every binary using the SSH package must be individually rebuilt and redeployed - checking with 'govulncheck' will surface vulnerable callers. As an interim workaround until binaries can be rebuilt, application-level code can chunk SSH channel writes into segments well below 4GB (for example, 1GB or smaller), which avoids the overflow at the cost of a small amount of extra loop overhead in the calling code and requires changes wherever bulk writes occur.

Affected VersionsENISA

golang.org/x/crypto/ssh 0 <0.52.0

Affected Packages

go golang.org/x/crypto fix: 0.52.0
go golang.org/x/crypto/ssh fix: 0.52.0
euvd golang_org_x_crypto_ssh fix: 0.52.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The golang.org/x/crypto/ssh package is Go's official extended-library implementation of the SSH protocol, widely used in Go-based SSH clients, servers, SFTP tools, and Kubernetes-adjacent tooling. The root cause is a CWE-190 integer overflow in payload size arithmetic: when comparing the remaining bytes to write against the maximum SSH packet payload, the calculation used a narrower (likely int or int32) type that wraps when input exceeds 2^31 / 4GB. As a result, the size comparison incorrectly concludes there is nothing left to send, but the outer loop never terminates, repeatedly transmitting zero-length packets. The vendor fix promotes the comparison to int64, preserving the true byte count and allowing the loop to drain correctly.

Know when Golang Org X Crypto Ssh gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Sources disagree (Medium–Critical)
Vendor (Go) PRIMARY 9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
SUSE CRITICAL
Red Hat 6.5 MEDIUM

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Go

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
May 28, 2026 - 15:07 NVD
9.1 (None) 9.1 (CRITICAL)
Patch available
May 22, 2026 - 04:31 EUVD
CVE Published
May 22, 2026 - 02:31 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

The Go golang.org/x/crypto/ssh library (versions prior to 0.52.0) contains a critical integer overflow vulnerability causing denial of service when processing SSH transfers exceeding 4GB. Though exploitation likelihood is negligible (EPSS 0.0%), organizations using this library for large-scale data operations should patch promptly to maintain service availability.

Business Impact: High
Compensating Controls

Vendor-released patch: golang.org/x/crypto/ssh v0.52.0 or later.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Threat Intel
1
1 sources
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC Vendor CIRCL VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

Vendor StatusVendor

SUSE

Severity: Critical
Product Status
openSUSE Leap 16.0 Fixed
openSUSE Tumbleweed Fixed
SLES15-SP6-CHOST-BYOS-GCE Fixed
SLES15-SP7-CHOST-BYOS-GCE Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy