CVE-2026-32283
Go vulnerability analysis and mitigation

Overview

CVE-2026-32283 is a denial-of-service vulnerability in the Go standard library's crypto/tls package affecting TLS 1.3 connections. When one side of a TLS 1.3 connection sends multiple key update messages post-handshake within a single record, the connection can deadlock, causing uncontrolled resource consumption. Affected versions include Go crypto/tls prior to 1.25.9 and versions 1.26.0 through 1.26.1. It was published on April 8, 2026, and carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory, pkg.go.dev).

Technical details

The root cause is classified as CWE-770 (Allocation of Resources Without Limits or Throttling). In TLS 1.3, the protocol permits post-handshake key update messages; however, the Go crypto/tls implementation does not properly handle the case where multiple such messages are packed into a single TLS record. This causes the connection state machine to deadlock, consuming system resources indefinitely without bound. The vulnerability is exploitable remotely with no authentication or user interaction required, as any network peer participating in a TLS 1.3 session can send a malformed record. A fix commit is available at the Go repository (go.dev CL, GitHub Advisory).

Impact

Successful exploitation results in a connection deadlock that causes uncontrolled consumption of system resources, leading to a denial-of-service condition. There is no impact on confidentiality or data integrity — the vulnerability exclusively affects availability. Any service built with a vulnerable version of Go's crypto/tls that accepts or initiates TLS 1.3 connections is at risk, including widely deployed applications such as web servers, proxies, and container orchestration components (GitHub Advisory, IBM Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time (GitHub Advisory). The EPSS score is approximately 0.007% (0.000070), indicating a very low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been reported. Despite the low exploitation evidence, the unauthenticated, network-accessible attack vector and broad ecosystem impact (Go-based applications, IBM App Connect Enterprise, rclone, Portainer, CoreDNS, and others) make patching a priority (pkg.go.dev).

Exploitation steps

  1. Identify target: Locate a service built with a vulnerable version of Go's crypto/tls (Go < 1.25.9 or Go 1.26.0–1.26.1) that accepts TLS 1.3 connections, using banner grabbing or version fingerprinting tools.
  2. Establish TLS 1.3 handshake: Initiate a standard TLS 1.3 connection to the target service to complete the handshake phase.
  3. Craft malicious record: Construct a single TLS record containing multiple KeyUpdate messages (TLS handshake type 24) concatenated together within the same record boundary, which is not standard TLS behavior.
  4. Send the malformed record: Transmit the crafted record to the target post-handshake. The vulnerable crypto/tls implementation enters a deadlock state while processing the multiple key update messages.
  5. Resource exhaustion: The deadlocked connection holds system resources (goroutines, file descriptors, memory) indefinitely. Repeating this across multiple connections can exhaust server resources and cause a denial of service (go.dev CL, GitHub Advisory).

Indicators of compromise

  • Network: Unusual TLS 1.3 connections that remain open indefinitely without completing normal application-layer communication; high volume of persistent TLS sessions from a single source IP targeting the same service port.
  • Logs: Application or server logs showing TLS connections that never close or time out; error messages related to TLS key update processing or goroutine/thread deadlocks in Go runtime logs.
  • System: Abnormal growth in open file descriptors or goroutine count for Go-based services (observable via /proc/<pid>/fd or Go pprof endpoints); elevated memory consumption without corresponding application load.
  • Process: Go service processes consuming CPU or memory disproportionate to traffic volume; service becoming unresponsive to new connection attempts while existing connections remain open.

Mitigation and workarounds

Upgrade the Go standard library to version 1.25.9 (for the 1.25.x branch) or 1.26.2 (for the 1.26.x branch) or later, which contain the fix for this deadlock (pkg.go.dev, go.dev CL). Downstream consumers should rebuild and redeploy any Go-based applications using the patched Go toolchain. IBM has released a patch for IBM App Connect Enterprise Certified Container (IBM Advisory). As a temporary workaround where upgrading is not immediately possible, consider placing a TLS-terminating proxy or load balancer in front of affected services that enforces connection timeouts to limit the impact of deadlocked connections. Linux distribution vendors including Red Hat, SUSE, openSUSE, Oracle Linux, Amazon Linux, and AlmaLinux have issued updated packages (golang-announce).

Community reactions

The Go team disclosed the vulnerability via the golang-announce mailing list and published a fix in Go 1.25.9 and 1.26.2 (golang-announce). The vulnerability was also reported to the oss-security mailing list (oss-sec). Community discussion noted the broad downstream impact, with projects such as CoreDNS, grpc-health-probe, oauth2-proxy, Portainer, rclone, and Tailscale's Go fork all issuing updates or pull requests in response. Social media activity on Mastodon and Bluesky was modest, reflecting the low exploitation risk but broad ecosystem reach.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Affected

bookworm

golang-1.19

Affected

sid

golang-1.26: 1.26.2-1

Fixed

trixie

golang-1.24

Affected

Ubuntu

Unknown

bionic (esm-apps)

golang-1.8

Unknown

bionic (esm-infra)

golang-1.10

Unknown

devel

golang-1.23

Unknown

focal (esm-apps)

golang-1.16

Unknown

focal (esm-infra)

golang-1.13

Unknown

jammy

golang-1.13

Unknown

jammy (esm-apps)

golang-1.13

Unknown

noble

golang-1.21

Unknown

RHEL / CentOS

Fixed

OpenShift

el8:containernetworking-plugins-1:1.4.0-7.rhaos4.15.el8.src

Fixed

RHEL 8

:appstream:container-tools:rhel8/podman/containernetworking-plugins

Fixed

RHEL 9

:appstream:buildah-1:1.26.11-1.el9_0.src

Fixed

RHEL 10

buildah-2:1.39.9-1.el10_0.src

Fixed

Alpine

Fixed

edge

go: 1.26.2-r0, 1.73.5-r0

Fixed

v3.23

go: 1.25.9-r0

Fixed

SourceThis report was generated using AI

Related Go vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-56865HIGH8.4
  • Go logoGo
  • gitlab-cng-19.1
NoYesAug 13, 2026
CVE-2026-56864HIGH7.5
  • Go logoGo
  • kyverno-readiness-checker-1.17
NoYesAug 13, 2026
CVE-2026-56862HIGH7.5
  • Go logoGo
  • kepler-fips
NoYesAug 13, 2026
CVE-2026-56859HIGH7.5
  • Go logoGo
  • grafana-elasticsearch
NoYesAug 13, 2026
CVE-2026-56860MEDIUM5.9
  • Go logoGo
  • crossplane-provider-aws-cur-fips
NoYesAug 13, 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