CVE-2016-3959
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not...
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.5
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
CVE-2016-3959- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:N/A:P - Weakness
- CWE-20
- Updated
- 2026-11-02
CVE List No score
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
CVE-2016-3959- Updated
- 2026-11-02
EUVDEUVD-2016-4968 No score
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
EUVD-2016-4968- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-w7w7-9368-hffm
7.5
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not...
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
GHSA-w7w7-9368-hffm- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVAZL-79052
7.5
CVE-2016-3959 affecting package golang 1.26.10-1
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
AZL-79052- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-05
OSVAZL-98631
7.5
CVE-2016-3959 affecting package golang 1.27.1-1
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
AZL-98631- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 11 moreShow less
OSVBELL-CVE-2016-3959
7.5
CVE-2016-3959 does not affect BellSoft software
- Record
BELL-CVE-2016-3959- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSV
7.5
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
CVE-2016-3959- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRHSA-2016:1538
5.3
Red Hat Security Advisory: golang security, bug fix, and enhancement update
- Record
RHSA-2016:1538- CVSS 3.0
- 5.3 Medium
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2016-3959
7.5
The Verify function in crypto/dsa/dsa.go in Go before 1.5.4 and 1.6.x before 1.6.1 does not properly check parameters passed to the big integer library, which might allow remote attackers to cause a denial of service (infinite loop) via a crafted public key to a program that uses HTTPS client certificates or SSH server libraries.
- Record
UBUNTU-CVE-2016-3959- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGO-2022-0166 No score
Denial of service due to unchecked parameters in crypto/dsa
The Verify function in crypto/dsa passed certain parameters unchecked to the underlying big integer library, possibly leading to extremely long-running computations, which in turn makes Go programs vulnerable to remote denial of service attacks. Programs using HTTPS client certificates or the Go SSH server libraries are both exposed to this vulnerability.
- Record
GO-2022-0166- Updated
- 2026-11-02
OSVMGASA-2016-0207 No score
Updated golang package fixes CVE-2016-3959
Updated golang packages fix security vulnerability:
Go has an infinite loop in several big integer routines that makes Go programs vulnerable to remote denial of service attacks. Programs using HTTPS client authentication or the Go ssh server libraries are both exposed to this vulnerability (CVE-2016-3959).
- Record
MGASA-2016-0207- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10028-1 No score
go-1.7.0-2.1 on GA media
These are all security issues fixed in the go-1.7.0-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10028-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10803-1 No score
go1.10-1.10.8-8.2 on GA media
These are all security issues fixed in the go1.10-1.10.8-8.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10803-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10804-1 No score
go1.11-1.11.13-10.5 on GA media
These are all security issues fixed in the go1.11-1.11.13-10.5 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10804-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10805-1 No score
go1.12-1.12.17-4.8 on GA media
These are all security issues fixed in the go1.12-1.12.17-4.8 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10805-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10812-1 No score
go1.9-1.9.7-11.2 on GA media
These are all security issues fixed in the go1.9-1.9.7-11.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10812-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
golangAzure Linux:3 |
through 1.26.10-1 | None known |
golangAzure Linux:3 |
1.27.0 to 1.27.1-1 | None known |
stdlibGo |
before 1.5.4, 1.6.0-0 up to 1.6.1 | 1.5.41.6.1 |
golangMageia:5 |
before 1.6.2-7.mga5 | 1.6.2-7.mga5 |
golangRed Hat:enterprise_linux:7::server |
before 0:1.6.3-1.el7_2.1 | 0:1.6.3-1.el7_2.1 |
golang-binRed Hat:enterprise_linux:7::server |
before 0:1.6.3-1.el7_2.1 | 0:1.6.3-1.el7_2.1 |
golang-docsRed Hat:enterprise_linux:7::server |
before 0:1.6.3-1.el7_2.1 | 0:1.6.3-1.el7_2.1 |
golang-miscRed Hat:enterprise_linux:7::server |
before 0:1.6.3-1.el7_2.1 | 0:1.6.3-1.el7_2.1 |
golang-srcRed Hat:enterprise_linux:7::server |
before 0:1.6.3-1.el7_2.1 | 0:1.6.3-1.el7_2.1 |
golang-testsRed Hat:enterprise_linux:7::server |
before 0:1.6.3-1.el7_2.1 | 0:1.6.3-1.el7_2.1 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
goopenSUSE:Tumbleweed |
before 1.7.0-2.1 | 1.7.0-2.1 |
go1.10openSUSE:Tumbleweed |
before 1.10.8-8.2 | 1.10.8-8.2 |
go1.11openSUSE:Tumbleweed |
before 1.11.13-10.5 | 1.11.13-10.5 |
go1.12openSUSE:Tumbleweed |
before 1.12.17-4.8 | 1.12.17-4.8 |
go1.9openSUSE:Tumbleweed |
before 1.9.7-11.2 | 1.9.7-11.2 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | alexmullins/dsa | 2016-04-10 |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | OSV | |
| affected | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2016-3959 is a high vulnerability (CVSS 7.5) in Golang Go, published May 23, 2016. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 4.36%, the 91st percentile. Fixed in stdlib 1.5.4.
References
openwall.com/lists/oss-security/2016/04/05/2
go-review.googlesource.com
rhn.redhat.com/errata/RHSA-2016-1538.html
lists.fedoraproject.org/pipermail/package-announce/2016-April/182526.html
groups.google.com/forum
lists.fedoraproject.org/pipermail/package-announce/2016-April/183106.html
Show 55 moreShow less
lists.opensuse.org/opensuse-updates/2016-05/msg00077.html
openwall.com/lists/oss-security/2016/04/05/1
lists.fedoraproject.org/pipermail/package-announce/2016-April/183137.html
nvd.nist.gov/vuln/detail/CVE-2016-3959
github.com/advisories/GHSA-w7w7-9368-hffm
docs.bell-sw.com/security/cves/CVE-2016-3959
go.dev/cl/21533
go.googlesource.com/go/+/eb876dd83cb8413335d64e50aae5d38337d1ebb4
go.dev/issue/15184
groups.google.com/g/golang-announce/c/9eqIHqaWvck
advisories.mageia.org/MGASA-2016-0207.html
bugs.mageia.org/show_bug.cgi?id=18482
access.redhat.com/errata/RHSA-2016:1538
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=1346331
bugzilla.redhat.com/show_bug.cgi?id=1353798
security.access.redhat.com/data/csaf/v2/advisories/2016/rhsa-2016_1538.json
access.redhat.com/security/cve/CVE-2015-5739
bugzilla.redhat.com/show_bug.cgi?id=1250352
cve.org/CVERecord?id=CVE-2015-5739
nvd.nist.gov/vuln/detail/CVE-2015-5739
access.redhat.com/security/cve/CVE-2015-5740
cve.org/CVERecord?id=CVE-2015-5740
nvd.nist.gov/vuln/detail/CVE-2015-5740
access.redhat.com/security/cve/CVE-2015-5741
cve.org/CVERecord?id=CVE-2015-5741
nvd.nist.gov/vuln/detail/CVE-2015-5741
access.redhat.com/security/cve/CVE-2016-3959
bugzilla.redhat.com/show_bug.cgi?id=1324343
cve.org/CVERecord?id=CVE-2016-3959
access.redhat.com/security/cve/CVE-2016-5386
cve.org/CVERecord?id=CVE-2016-5386
nvd.nist.gov/vuln/detail/CVE-2016-5386
ubuntu.com/security/CVE-2016-3959
golang.org/cl/21533
seclists.org/oss-sec/2016/q2/11
suse.com/security/cve/CVE-2014-7189
suse.com/security/cve/CVE-2015-8618
suse.com/security/cve/CVE-2016-3959
suse.com/security/cve/CVE-2016-5386
suse.com/security/cve/CVE-2017-15041
suse.com/security/cve/CVE-2017-15042
suse.com/security/cve/CVE-2017-8932
suse.com/security/cve/CVE-2018-16873
suse.com/security/cve/CVE-2018-16874
suse.com/security/cve/CVE-2018-16875
suse.com/security/cve/CVE-2018-6574
suse.com/security/cve/CVE-2019-6486
suse.com/security/cve/CVE-2019-14809
suse.com/security/cve/CVE-2019-9512
suse.com/security/cve/CVE-2019-9514
suse.com/security/cve/CVE-2019-11888
suse.com/security/cve/CVE-2019-16276
suse.com/security/cve/CVE-2019-17596
suse.com/security/cve/CVE-2018-7187