GHSA-w879-237q-wc7r CVE-2026-39829 GO-2026-5018
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
- Severity
- 7.5 / 10
- High · CVSS 3.1
- Exploit chance (EPSS)
- 0.47%
- Chance of exploitation in the next 30 days. Higher than 40.44% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-347 Improper Verification of Cryptographic Signature
- CWE-1284 Improper Validation of Specified Quantity in Input
- Fix
0.52.0- Upgrade golang.org/x/crypto to this version or later
Description
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2.
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| golang.org/x/crypto | < 0.52.0 |
0.52.0 |
| golang.org/x/crypto | < 0.52.0 |
0.52.0 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
golang.org/x/crypto Go → 0.52.0
- go
go get golang.org/x/crypto@v0.52.0 && go mod tidy
Severity breakdown
CVSS 3.1 7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Weakness
CWE-347: Improper Verification of Cryptographic Signature
The product does not verify, or incorrectly verifies, the cryptographic signature for data.
CWE-1284: Improper Validation of Specified Quantity in Input
The product receives input that is expected to specify a quantity (such as size or length), but it does not validate or incorrectly validates that the quantity has the required properties.
How to prevent it
- Implementation: Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.
References
Advisories
Packages
Other links
- go.dev/cl/781641
- go.dev/cl/781661
- go.dev/issue/79565
- groups.google.com/g/golang-announce/c/a082jnz-LvI
- pkg.go.dev/vuln/GO-2026-5018
- access.redhat.com/errata/RHSA-2026:29455
- access.redhat.com/security/cve/CVE-2026-39829
- bugzilla.redhat.com/show_bug.cgi
- security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-39829.json
- access.redhat.com/errata/RHSA-2026:26546
- access.redhat.com/errata/RHSA-2026:26547
- access.redhat.com/errata/RHSA-2026:35833
- access.redhat.com/errata/RHSA-2026:36648
- access.redhat.com/errata/RHSA-2026:36625
- access.redhat.com/errata/RHSA-2026:36319
- access.redhat.com/errata/RHSA-2026:36207
- access.redhat.com/errata/RHSA-2026:36199
- access.redhat.com/errata/RHSA-2026:37271
- access.redhat.com/errata/RHSA-2026:37268
- access.redhat.com/errata/RHSA-2026:37123
- access.redhat.com/errata/RHSA-2026:37072
- access.redhat.com/errata/RHSA-2026:36883
- access.redhat.com/errata/RHSA-2026:36820
- access.redhat.com/errata/RHSA-2026:36808
- access.redhat.com/errata/RHSA-2026:36797
- access.redhat.com/errata/RHSA-2026:36796
- access.redhat.com/errata/RHSA-2026:36651
- access.redhat.com/errata/RHSA-2026:37272
- access.redhat.com/errata/RHSA-2026:37278
- access.redhat.com/errata/RHSA-2026:37286
- access.redhat.com/errata/RHSA-2026:37296
- access.redhat.com/errata/RHSA-2026:37387
- access.redhat.com/errata/RHSA-2026:40118
- access.redhat.com/errata/RHSA-2026:40119
- access.redhat.com/errata/RHSA-2026:40262
- access.redhat.com/errata/RHSA-2026:40969
- access.redhat.com/errata/RHSA-2026:40974
- access.redhat.com/errata/RHSA-2026:40945
- access.redhat.com/errata/RHSA-2026:40972
- access.redhat.com/errata/RHSA-2026:41019
- access.redhat.com/errata/RHSA-2026:41031
- access.redhat.com/errata/RHSA-2026:41036
- access.redhat.com/errata/RHSA-2026:41066
- access.redhat.com/errata/RHSA-2026:41055
- access.redhat.com/errata/RHSA-2026:42146
- access.redhat.com/errata/RHSA-2026:42796
- access.redhat.com/errata/RHSA-2026:43052
- access.redhat.com/errata/RHSA-2026:43692
- access.redhat.com/errata/RHSA-2026:46885
- access.redhat.com/errata/RHSA-2026:46903
- access.redhat.com/errata/RHSA-2026:47735
- access.redhat.com/errata/RHSA-2026:47949
- access.redhat.com/errata/RHSA-2026:48151
- access.redhat.com/errata/RHSA-2026:48693
- access.redhat.com/errata/RHSA-2026:49944
- access.redhat.com/errata/RHSA-2026:51033
- access.redhat.com/errata/RHSA-2026:52857
- access.redhat.com/errata/RHSA-2026:52910
- access.redhat.com/errata/RHSA-2026:54400
- access.redhat.com/errata/RHSA-2026:54432
- access.redhat.com/errata/RHSA-2026:57191
- access.redhat.com/errata/RHSA-2026:57194
- access.redhat.com/errata/RHSA-2026:57365
- access.redhat.com/errata/RHSA-2026:57801
- access.redhat.com/errata/RHSA-2026:59467
- access.redhat.com/errata/RHSA-2026:59559
- access.redhat.com/errata/RHSA-2026:59593
- access.redhat.com/errata/RHSA-2026:60446
- access.redhat.com/errata/RHSA-2026:60454
- access.redhat.com/errata/RHSA-2026:60477
- access.redhat.com/errata/RHSA-2026:60520
- access.redhat.com/errata/RHSA-2026:61314
- access.redhat.com/errata/RHSA-2026:65126
- access.redhat.com/errata/RHSA-2026:65964
- access.redhat.com/errata/RHSA-2026:66022
- access.redhat.com/errata/RHSA-2026:67450
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GO-2026-6355 Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh | High | Also affects golang.org/x/crypto |
| GO-2026-6354 Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh | High | Also affects golang.org/x/crypto |
| GO-2026-6303 Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh | High | Also affects golang.org/x/crypto |
| GO-2026-5932 The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues | Not rated yet | Also affects golang.org/x/crypto |
| GHSA-x527-x647-q7gg golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement | Critical | Also affects golang.org/x/crypto |
| GHSA-vgwf-h737-ff37 golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses | Critical | Also affects golang.org/x/crypto |
| GHSA-rm3j-f69w-wqmq golang.org/x/crypto vulnerable to infinite loop on large channel writes | Critical | Also affects golang.org/x/crypto |
| GHSA-qpw4-5x99-6vjp golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS | Medium | Also affects golang.org/x/crypto |
Credits: NCC Group Cryptography Services, sponsored by Teleport
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor