CVE-2026-32283
High · 7.5CVSS
7.5
EPSS
0.6%
Published
Apr 8, 2026
CISA due date
—
Cloudanix analysis
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
- Discover Go-based services or APIs exposing TLS 1.3 on reachable network ports.
- Establish one or more valid TLS 1.3 sessions with the target service.
- Send a crafted post-handshake TLS record containing multiple KeyUpdate messages.
- Leave affected connections open or repeat the sequence to accumulate deadlocked resources.
- 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
- CVE-2026-42507 When returning errors, functions in the net/textproto package would include its input as… Also affects go1.25
- CVE-2026-42504 Decoding a maliciously-crafted MIME header containing many invalid encoded-words can… Also affects go1.25
- CVE-2026-27145 (*x509.Certificate).VerifyHostname previously called matchHostnames in a loop over all… Also affects go1.25
- CVE-2026-27144 The compiler is meant to unwrap pointers which are the operands of a memory move; a no-op… Also affects go1.25
- CVE-2026-27143 Arithmetic over induction variables in loops were not correctly checked for underflow or… Also affects go1.25
- CVE-2026-32282 On Linux, if the target of Root.Chmod is replaced with a symlink while the chmod… Also affects go1.25
- CVE-2026-32280 During chain building, the amount of work that is done is not correctly limited when a… Also affects go1.25
- CVE-2026-32281 Validating certificate chains which use policies is unexpectedly inefficient when… Also affects go1.25