PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet

CVE-2026-78662: 
Docker vulnerability analysis and mitigation

Overview

CVE-2026-78662 is a Denial of Service vulnerability in the golang.org/x/crypto/ssh package affecting all versions before 0.56.0. A malicious peer can flood a channel's incomingRequests queue before the channel is fully established, causing a deadlock that freezes the entire SSH multiplexed connection. The vulnerability was published on September 2, 2026, with a patch released on September 5, 2026. It carries a CVSS v3.1 base score of 7.5 (High) (Microsoft MSRC, OSV).

Technical details

The root cause is classified as CWE-770 (Allocation of Resources Without Limits or Throttling). In the SSH multiplexer (mux), channels registered in the chanList are not usable until they are fully established; however, the handlePacket function previously had no guard against incoming packets flooding the channel's incomingRequests buffer during this pre-establishment window. A malicious peer can exploit this by sending a high volume of channel request packets before the open confirmation is received, causing a deadlock that blocks the entire connection without any rate limiting or timeout protection. The fix introduces an atomic established state flag: until a channel transitions to established, handlePacket silently drops all packets except open confirmation or failure messages, preventing the deadlock without tearing down the connection (OSV, Go Issue, Go CL).

Impact

Successful exploitation causes a complete deadlock of the affected SSH connection, preventing any further communication over that connection — a full Denial of Service for the session. Because the attack targets the multiplexer level, all channels sharing the same connection are affected simultaneously. The impact is limited to availability; there is no evidence of confidentiality or integrity compromise from this vulnerability alone (OSV, Microsoft MSRC).

Exploitability

No public proof-of-concept exploit code has been identified, and there is no evidence of active in-the-wild exploitation as of the time of reporting (Feedly). The attack is network-based, requires no authentication, no user interaction, and low complexity, making it automatable (NVD SSVC: automatable = yes). The EPSS score is approximately 0.17%, indicating a low current probability of exploitation. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.

Exploitation steps

  1. Identify target: Locate a service using golang.org/x/crypto/ssh versions prior to 0.56.0 that accepts inbound SSH connections (e.g., SSH servers, SFTP servers, or any Go application embedding the library).
  2. Initiate SSH connection: Establish a TCP connection to the target SSH service and complete the SSH handshake to reach the channel negotiation phase.
  3. Open a channel: Send an SSH SSH_MSG_CHANNEL_OPEN packet to register a new channel in the server's chanList. At this point, the channel is registered but not yet established.
  4. Flood incomingRequests: Before the server sends or processes the open confirmation (SSH_MSG_CHANNEL_OPEN_CONFIRMATION), rapidly send a large volume of channel request packets (SSH_MSG_CHANNEL_REQUEST) targeting the newly opened channel ID.
  5. Trigger deadlock: The unprotected incomingRequests buffer fills up, causing the handlePacket goroutine to block indefinitely, deadlocking the entire SSH multiplexed connection and denying service to all users of that connection (Go Issue, OSV).

Indicators of compromise

  • Network: Sudden spike in SSH channel request packets (SSH_MSG_CHANNEL_REQUEST) from a single source IP before channel establishment completes; connections that remain open but transfer no data after the initial handshake.
  • Logs: SSH server logs showing connections that hang indefinitely without completing channel setup; application logs showing goroutine deadlock or blocked channel operations in Go runtime stack traces.
  • Process: Go application process consuming elevated CPU or memory without corresponding workload; goroutine dumps (via SIGQUIT or /debug/pprof/goroutine) showing multiple goroutines blocked on channel send/receive operations related to incomingRequests.
  • Availability: Sudden unresponsiveness of SSH-based services (e.g., SFTP, remote management) without a corresponding system crash or restart.

Mitigation and workarounds

Update golang.org/x/crypto to version 0.56.0 or later, which introduces the atomic established state check that drops non-confirmation packets on unestablished channels without blocking (OSV, Go CL). As a network-level workaround, implement rate limiting or connection timeouts on SSH endpoints to detect and terminate connections exhibiting flooding behavior before the deadlock occurs. Monitor for connection deadlocks and implement automated service restart or watchdog mechanisms as a temporary resilience measure. Downstream projects such as rclone and Portainer have already released updates incorporating the patched library (rclone changelog, Portainer release).

Community reactions

The vulnerability was covered in BleepingComputer's roundup of Microsoft's September 2026 Patch Tuesday, which addressed 966 flaws (BleepingComputer). SUSE issued security advisories and updates for affected containerized products (e.g., SUSE-SU-2026:4209-1), and openSUSE published multiple security announcements (SUSE Advisory). The Go security team disclosed the issue via the golang-announce mailing list (golang-announce). Community reaction has been measured, with scanner vendors (Tenable/Nessus, Qualys) quickly adding detection plugins.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

golang-go.crypto

Affected

sid

golang-go.crypto: 1:0.56.0-1

Fixed

trixie

golang-go.crypto

Affected

Ubuntu

Unknown

bionic (esm-infra)

golang-defaults

Unknown

devel

golang-1.26

Unknown

focal (esm-apps)

golang-1.20

Unknown

focal (esm-infra)

golang-defaults

Unknown

jammy

golang-1.17

Unknown

jammy (esm-apps)

golang-1.20

Unknown

noble

golang-1.21

Unknown

noble (esm-apps)

golang-1.21

Unknown

RHEL / CentOS

Affected

OpenShift

cri-o.src

Affected

RHEL 8

container-tools:rhel8/buildah.src

Affected

RHEL 9

buildah.src

Affected

RHEL 10

buildah.src

Affected

Source: This report was generated using AI

Related Docker vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-97032HIGH7.5
  • Go logoGo
  • gitlab-kas-19.2
NoYesOct 08, 2026
CVE-2026-94440HIGH7.5
  • Go logoGo
  • trillian
NoYesOct 08, 2026
CVE-2026-111943HIGH6.8
  • Docker logoDocker
  • terraform-1.15
NoYesOct 21, 2026
CVE-2026-97030MEDIUM6.1
  • Go logoGo
  • wait-for-port
NoYesOct 08, 2026
CVE-2026-94448MEDIUM6.1
  • Go logoGo
  • buildah-tests
NoYesOct 08, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management