CVE-2026-23991

Panic at the Distro: Crashing go-tuf with Malformed JSON

Amit Schendel
Amit Schendel
Senior Security Researcher

Jan 21, 2026·6 min read·4 visits

Executive Summary (TL;DR)

CVE-2026-23991 is a remote DoS in `go-tuf` caused by a classic Go mistake: unsafe type assertions on untrusted JSON. An attacker controlling a mirror or executing a MitM attack can force the update client to panic by serving a JSON payload where expected objects are replaced with primitives. This happens *before* signature checks, meaning no private keys are required to take down the update infrastructure.

A critical Denial of Service vulnerability in the Go implementation of The Update Framework (go-tuf) allows unauthenticated attackers to crash client applications by serving malformed metadata. The crash occurs due to unsafe type assertions before cryptographic verification.

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Probability
0.04%
Top 100% most exploited

Affected Systems

Go applications using github.com/theupdateframework/go-tufTUF Client Implementations in GoContainer image updaters relying on go-tufIoT firmware updaters relying on go-tuf

Affected Versions Detail

Product
Affected Versions
Fixed Version
github.com/theupdateframework/go-tuf
The Update Framework (TUF)
< v2.3.1v2.3.1
AttributeDetail
CWE IDCWE-400 (Uncontrolled Resource Consumption)
Attack VectorNetwork (Remote)
CVSS7.5 (High)
ImpactDenial of Service (Application Crash)
VulnerabilityRuntime Panic via Type Assertion
Exploit StatusPOC Available
CWE-400
Uncontrolled Resource Consumption

The software does not properly handle an unexpected data type, leading to a runtime error (panic) that causes the application to crash.

Vulnerability Timeline

Vulnerability Discovered
2025-12-15
Fix Committed
2026-01-19
Patch Released (v2.3.1)
2026-01-21

Subscribe to updates

Get the latest CVE analysis reports delivered to your inbox.