CVE-2023-29409 Large RSA keys can cause high CPU usage in crypto/tls

Medium 5.3 Published Updated

Attackers can cause high CPU usage and denial of service in Go applications by presenting extremely large RSA keys in certificate chains.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2023-29409?

CVE-2023-29409 is a medium-severity denial of service vulnerability in Golang Go, published on 2 Aug 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

Extremely large RSA keys in certificate chains can cause a client/server to expend significant CPU time verifying signatures. With fix, the size of RSA keys transmitted during handshakes is restricted to <= 8192 bits. Based on a survey of publicly trusted RSA keys, there are currently only three certificates in circulation with keys larger than this, and all three appear to be test certificates that are not actively deployed. It is possible there are larger keys in use in private PKIs, but we target the web PKI, so causing breakage here in the interests of increasing the default safety of users of crypto/tls seems reasonable.

Weakness: CWE-400

Which versions are affected by CVE-2023-29409?

2 open source packages ship an affected version, including golang and stdlib. It affects 1 product.

PackageAffectedFixed in
golang BitnamiAll versions1.19.12, 1.20.7
stdlib GoAll versions1.19.12, 1.20.7, 1.21.0-rc.4
Linux distribution packages (38)
microshift Red Hat:openshift:4.14::el9All versions0:4.14.10-202401181720.p0.gd25a4c5.assembly.4.14.10.el9
microshift-greenboot Red Hat:openshift:4.14::el9All versions0:4.14.10-202401181720.p0.gd25a4c5.assembly.4.14.10.el9
microshift-networking Red Hat:openshift:4.14::el9All versions0:4.14.10-202401181720.p0.gd25a4c5.assembly.4.14.10.el9
microshift-release-info Red Hat:openshift:4.14::el9All versions0:4.14.10-202401181720.p0.gd25a4c5.assembly.4.14.10.el9
microshift-selinux Red Hat:openshift:4.14::el9All versions0:4.14.10-202401181720.p0.gd25a4c5.assembly.4.14.10.el9
go1.19 SUSE:Enterprise Storage 7.1All versions1.19.12-150000.1.40.1
golang-github-prometheus-node_exporter SUSE:Enterprise Storage 7.1All versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSSAll versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSSAll versions1.5.0-150100.3.26.2
go1.19 SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOSAll versions1.19.12-150000.1.40.1
golang-github-prometheus-node_exporter SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOSAll versions1.5.0-150100.3.26.2
go1.19 SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSSAll versions1.19.12-150000.1.40.1
golang-github-prometheus-node_exporter SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSSAll versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Module for Basesystem 15 SP4All versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Module for Basesystem 15 SP5All versions1.5.0-150100.3.26.2
go1.19 SUSE:Linux Enterprise Module for Development Tools 15 SP4All versions1.19.12-150000.1.40.1
go1.20 SUSE:Linux Enterprise Module for Development Tools 15 SP4All versions1.20.7-150000.1.20.1
go1.19 SUSE:Linux Enterprise Module for Development Tools 15 SP5All versions1.19.12-150000.1.40.1
go1.20 SUSE:Linux Enterprise Module for Development Tools 15 SP5All versions1.20.7-150000.1.20.1
grafana SUSE:Linux Enterprise Module for Package Hub 15 SP4All versions9.5.5-150200.3.47.1
golang-github-prometheus-alertmanager SUSE:Linux Enterprise Module for Package Hub 15 SP5All versions0.23.0-150100.4.16.2
grafana SUSE:Linux Enterprise Module for Package Hub 15 SP5All versions9.5.5-150200.3.47.1
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Server 15 SP1-LTSSAll versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Server 15 SP2-LTSSAll versions1.5.0-150100.3.26.2
go1.19 SUSE:Linux Enterprise Server 15 SP3-LTSSAll versions1.19.12-150000.1.40.1
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Server 15 SP3-LTSSAll versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Server for SAP Applications 15 SP1All versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Server for SAP Applications 15 SP2All versions1.5.0-150100.3.26.2
go1.19 SUSE:Linux Enterprise Server for SAP Applications 15 SP3All versions1.19.12-150000.1.40.1
golang-github-prometheus-node_exporter SUSE:Linux Enterprise Server for SAP Applications 15 SP3All versions1.5.0-150100.3.26.2
golang-github-prometheus-alertmanager SUSE:Manager Client Tools 15All versions0.23.0-150100.4.16.2
golang-github-prometheus-node_exporter SUSE:Manager Client Tools for SLE Micro 5All versions1.5.0-150100.3.26.2
golang-github-prometheus-node_exporter SUSE:Manager Proxy 4.2All versions1.5.0-150100.3.26.2
golang-github-prometheus-alertmanager SUSE:Manager Proxy Module 4.2All versions0.23.0-150100.4.16.2
spacecmd SUSE:Manager Proxy Module 4.2All versions4.2.24-150300.4.42.3
spacewalk-backend SUSE:Manager Proxy Module 4.2All versions4.2.29-150300.4.44.5
spacewalk-web SUSE:Manager Proxy Module 4.2All versions4.2.36-150300.3.47.5
golang-github-prometheus-alertmanager SUSE:Manager Proxy Module 4.3All versions0.23.0-150100.4.16.2

Products include Golang Go.

How do I fix CVE-2023-29409?

Upgrade golang to a fixed version for your release line: 1.19.12 or 1.20.7.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2023-29409 being exploited?

There is no known exploitation of CVE-2023-29409 in the wild and no public exploit code.

Public exploit code: 1 proofs of concept on GitHub.

All Golang Go vulnerabilities

Sources

Also known as AZL-27812, AZL-27814, AZL-37302, AZL-37344, AZL-52881, AZL-79008 and 21 more.

Is CVE-2023-29409 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free