CVE-2016-3959: Denial of Service in crypto/dsa
Summary
CVE-2016-3959: Denial of service due to unchecked parameters in crypto/dsa. Affects stdlib across 2 version ranges.
< 1.5.4
>= 1.6.0-0, < 1.6.1
Fixed in 1.5.4 or 1.6.1, depending on the release line you run. How to fix ↓
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
The stdlib package in Go is a collection of standard libraries that provide essential functionality for Go programs. One of the packages in stdlib is crypto/dsa, which implements the Digital Signature Algorithm (DSA) for cryptographic operations. DSA is commonly used for generating and verifying digital signatures. However, a vulnerability in the Verify function of crypto/dsa allows for remote denial of service attacks. This vulnerability affects programs that use HTTPS client certificates or the Go SSH server libraries.
Vulnerability Detail
The Verify function in crypto/dsa passes certain parameters unchecked to the underlying big integer library. This can result in extremely long-running computations, making Go programs vulnerable to remote denial of service attacks. An attacker can exploit this vulnerability by sending specially crafted input that triggers the long-running computation, causing the program to become unresponsive. This can lead to service disruption and impact the availability of affected systems.
How To Fix
Latest published version: go1.25.5 as of 22 Oct 2026
go get stdlib@vgo1.25.5
Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.
If you can't move to the latest
The minimum fixed version depends on the release line you run.
-
< 1.5.41.5.4go get stdlib@v1.5.4 -
>= 1.6.0-0, < 1.6.11.6.1go get stdlib@v1.6.1
Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →
Workaround
There is no known workaround for this vulnerability. It is necessary to apply the fix by updating the affected software.
Conclusion
The vulnerability in crypto/dsa exposes Go programs using HTTPS client certificates or the Go SSH server libraries to remote denial of service attacks. To mitigate this issue, it is crucial to update the affected software to a version that includes the fix. Developers should also consider using Vulert's vulnerability monitoring service to ensure their applications are protected against known vulnerabilities. For further support on vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for stdlib →
FAQ
This vulnerability affects the crypto/dsa package in the Go standard library (stdlib). Programs that use HTTPS client certificates or the Go SSH server libraries are also affected.
The vulnerability allows for remote denial of service attacks. An attacker can exploit this vulnerability to cause affected programs to become unresponsive, leading to service disruption and potential availability issues.
No, not all versions of Go are affected. The vulnerability was introduced in Go version 1.6.0-0 and fixed in versions 1.5.4 and 1.6.1. It is recommended to upgrade to the latest stable version of Go to ensure the fix is applied.
No, there is no known workaround for this vulnerability. It is necessary to apply the fix by updating the affected software.
You can use Vulert's vulnerability monitoring service to check if your application is affected by this vulnerability. Vulert uses Gopkg.lock to monitor and alert in real-time for open-source vulnerabilities in software. Visit the Vulert playground at Vulert Scanner to check if your application is affected without any signup.
References
Related vulnerabilities
Recent vulnerabilities recorded for stdlib.