GHSA-22w5-2fxg-vrwx json
OpenTofu has high CPU usage when using K8S remote state backend or when parsing specifically crafted TLS certificates from untrusted or compromised servers
published 2mo ago modified 2mo ago also GO-2026-6262
- cvss
- 2.6
- version 3.1, GitHub
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
### Impact
Unauthenticated denial of service.
### Summary
When OpenTofu performs requests against an untrusted (or compromised) third-party server or connects to an attacker-controlled server, the initial connection negotiation can produce high CPU usage, leading to possible denial of service.
These vulnerabilities **do not** permit arbitrary code execution or allow disclosure of confidential information.
### Details
OpenTofu relies on third-party implementations of TLS certificate verification and HTTP request execution from the standard library of the Go programming language.
The Go project has recently published the following advisories for those implementations which indirectly affect OpenTofu's behavior:
- [CVE-2026-42504](https://www.cve.org/CVERecord?id=CVE-2026-42504): Quadratic complexity in WordDecoder.DecodeHeader in mime - [CVE-2026-27145](https://www.cve.org/CVERecord?id=CVE-2026-27145): Inefficient candidate hostname parsing in crypto/x509
CVE-2026-42504 affects OpenTofu's K8S remote state implementation. The operator of a configuration that uses such a backend needs to double-check the trustworthiness of the server used for this purpose. In situations where the server is untrusted or compromised, an attacker could configure it to respond with an intentionally crafted HTTP response designed to target this specific vulnerability in the Go standard library, potentially leading to high CPU usage.
CVE-2026-27145 has a similar outcome: if an untrusted or compromised third-party server is used, an attacker could craft a specific TLS certificate that targets this vulnerability in the Go standard library, which could also lead to high CPU usage.
Typical use of OpenTofu already requires caution in selection of third-party dependencies.
### Patches
OpenTofu v1.11.9 and v1.12.2 address these vulnerabilities by upgrading to the Go versions that fix them (v1.25.11 and v1.26.3).
The OpenTofu v1.10 series is also impacted by these vulnerabilities. However, that series is built with a version of Go for which no upstream fix is available. Adopting Go 1.25.11 for that series would effectively end support for certain versions of macOS and Linux, and the OpenTofu Project has determined that the impact of these vulnerabilities is not high enough to justify that disruption in a patch release. For those using OpenTofu v1.10 releases, we recommend planning an upgrade to OpenTofu v1.11.9 in the near future.
Patch / fix
- go github.com/opentofu/opentofu 1.11.9, 1.12.2
Is GHSA-22w5-2fxg-vrwx in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| GitHub | 3.1 | 2.6 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/opentofu/opentofu | >=1.12.0-beta1, <1.12.2 <1.11.9 |
1.12.2 1.11.9 |
Classification
- Weakness
-
- CWE-400 Uncontrolled Resource Consumption
References
-
github.com
/opentofu/opentofu/security/advisories/GHSA-22w5-2fxg-vrwx
web, advisory
-
github.com
/opentofu/opentofu/issues/4242
web, report
-
github.com
/opentofu/opentofu/issues/4243
web, report
-
github.com
/opentofu/opentofu/issues/4244
web, report
-
github.com
/opentofu/opentofu
package
-
github.com
/opentofu/opentofu/releases/tag/v1.11.9
web
-
github.com
/opentofu/opentofu/releases/tag/v1.12.2
web
Sources
- GitHub Advisory GHSA-22w5-2fxg-vrwx
- OSV GO-2026-6262
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.