Cloudanix VulnDB

CVE-2026-32283

High · 7.5

CVSS

7.5

EPSS

0.6%

Published

Apr 8, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A remote attacker could knock some Go-based encrypted services offline by sending specially crafted connection traffic.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The flaw is a denial-of-service condition in Go TLS 1.3 handling. A remote, unauthenticated peer can send multiple post-handshake TLS KeyUpdate messages within a single TLS record. Vulnerable Go implementations can deadlock while processing those updates, leaving the connection and associated goroutines, sockets, memory, or worker capacity tied up. Repeated connections can exhaust service resources and degrade or stop availability. The issue is limited to TLS 1.3; confidentiality and integrity are not directly impacted.

Why it matters to the business

Public or internal services built with affected Go TLS code may become unavailable if an attacker repeatedly triggers the deadlock, causing outages, degraded API performance, failed customer transactions, or loss of operational capacity. The vulnerability is network-exploitable without authentication and has high availability impact, but current exploitation signals are low: EPSS is stable at 0.00621 over 30 days, it is not listed in CISA KEV, and no exploit maturity is reported. Organizations that broadly deploy Go-based internet-facing services should still prioritize exposure reduction because exploitation requires only crafted TLS traffic.

How an attack unfolds

An attacker identifies a service that terminates TLS 1.3 using a vulnerable Go TLS implementation. The attacker opens a TLS 1.3 connection and, after the handshake, sends a specially structured TLS record containing multiple KeyUpdate messages. The vulnerable endpoint can enter a deadlocked state while processing the key updates. The attacker then repeats this across many connections or from distributed sources, causing connection slots, goroutines, memory, file descriptors, or service workers to accumulate until the service becomes slow or unavailable. No credentials, user interaction, or application-layer request is required if the vulnerable TLS endpoint is reachable.

How to fix it

Upgrade affected Go toolchains and rebuild/redeploy Go applications once a vendor-fixed version is available. Because no fixed versions were provided in the input, track the official Go security advisory for CVE-2026-32283 and apply the first release that includes the TLS 1.3 KeyUpdate fix. Rebuilding is important: statically linked Go binaries usually contain their own copy of the standard library, so updating the OS package alone may not remediate deployed applications. As temporary mitigations, place vulnerable services behind a patched TLS-terminating proxy or load balancer, enforce aggressive connection and handshake timeouts, cap concurrent connections per source, use rate limiting, monitor and limit file descriptors and goroutines, and consider disabling TLS 1.3 only where business risk allows and after compatibility testing.

How to confirm the fix worked

Inventory Go-built services and confirm which binaries use affected Go versions and expose TLS 1.3. For Go binaries, use build metadata where available, such as `go version -m <binary>`, SBOM data, CI build records, or container image metadata. After upgrading and rebuilding, confirm the deployed binary was built with a fixed Go release and that the old artifact is no longer running. Validate functionally with a controlled, authorized TLS test that sends multiple post-handshake KeyUpdate messages in a single record and confirm the service does not deadlock, leak goroutines, accumulate stuck connections, or degrade availability. Also verify operational controls: connection limits, timeouts, TLS termination behavior, and alerting on abnormal TLS connection growth.

Typical attack path

  1. Discover Go-based services or APIs exposing TLS 1.3 on reachable network ports.
  2. Establish one or more valid TLS 1.3 sessions with the target service.
  3. Send a crafted post-handshake TLS record containing multiple KeyUpdate messages.
  4. Leave affected connections open or repeat the sequence to accumulate deadlocked resources.
  5. Scale the attempt across concurrent connections to exhaust capacity and cause denial of service.

How to detect it

This vulnerability produces denial-of-service symptoms rather than reliable host compromise artifacts. Look for evidence of exploitation in TLS endpoint telemetry, load balancer logs, reverse proxy logs, firewall flow logs, application metrics, and runtime diagnostics. Useful signs include sudden increases in established TLS 1.3 connections, connections with little or no application-layer request data, repeated short sessions from the same or many source IPs, growth in goroutine count or blocked runtime activity in Go services, file descriptor exhaustion, elevated memory usage, connection pool exhaustion, and service latency or 5xx errors without corresponding application workload. If Go runtime profiling or crash diagnostics are available, review goroutine dumps for unusual accumulation in TLS connection handling paths. Network packet capture is usually insufficient to identify KeyUpdate content without endpoint decryption because TLS 1.3 post-handshake messages are encrypted; detection is therefore best based on endpoint behavior, TLS session metadata, and resource-exhaustion patterns. No named threat actors, ransomware campaigns, or KEV exploitation are currently associated with the provided data.

What your security team should do

  • Prioritize internet-facing Go services that terminate TLS 1.3 directly, especially APIs, gateways, control planes, and high-availability services.
  • Track the official Go advisory and rebuild all affected Go applications with the fixed Go release as soon as it is available.
  • Do not rely solely on host package updates; identify and replace statically linked Go binaries and container images built with vulnerable toolchains.
  • Temporarily route exposed services through patched TLS terminators or reverse proxies where feasible.
  • Apply rate limits, per-source connection caps, idle connection timeouts, and resource ceilings to reduce denial-of-service blast radius.
  • Add monitoring for spikes in TLS 1.3 connections, long-lived idle connections, goroutine counts, file descriptor usage, CPU saturation, memory pressure, and service latency.
  • Review load balancer, proxy, firewall, and application logs for availability anomalies since publication on 2026-04-08, with attention to repeated TLS sessions that do not produce normal application requests.
  • Because this is not currently in CISA KEV and EPSS is low and stable, balance urgency against exposure, but treat directly exposed critical services as high priority due to unauthenticated network exploitability.

The record

If one side of the TLS connection sends multiple key update messages post-handshake in a single record, the connection can deadlock, causing uncontrolled consumption of resources. This can lead to a denial of service. This only affects TLS 1.3.

Affected packages

Ecosystem Package Introduced Fixed
openSUSE:Leap 16.0 go1.25 0 1.25.9-160000.1.1
openSUSE:Leap 16.0 go1.26 0 1.26.2-160000.1.1
openSUSE:Tumbleweed go1.25 0 1.25.9-1.1
openSUSE:Tumbleweed go1.26 0 1.26.2-1.1
openSUSE:Tumbleweed kyverno 0 1.18.0-1.1

Related vulnerabilities