CVE-2023-45290 Memory exhaustion in multipart form parsing in net/textproto and net/http

Medium 6.5 Published Updated

Attackers can cause memory exhaustion and denial of service by sending maliciously crafted multipart form data with very long lines to Go applications.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2023-45290?

CVE-2023-45290 is a medium-severity denial of service vulnerability in Go standard library net/textproto, published on 5 Mar 2024. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

When parsing a multipart form (either explicitly with Request.ParseMultipartForm or implicitly with Request.FormValue, Request.PostFormValue, or Request.FormFile), limits on the total size of the parsed form were not applied to the memory consumed while reading a single form line. This permits a maliciously crafted input containing very long lines to cause allocation of arbitrarily large amounts of memory, potentially leading to memory exhaustion. With fix, the ParseMultipartForm function now correctly limits the maximum size of form lines.

Weakness: CWE-770

Which versions are affected by CVE-2023-45290?

2 open source packages ship an affected version, including golang and stdlib.

PackageAffectedFixed in
golang BitnamiAll versions1.21.8, 1.22.1
stdlib GoAll versions1.21.8, 1.22.1
Linux distribution packages (9)
containernetworking-plugins AlmaLinux:9All versions1:1.4.0-3.el9_4
gvisor-tap-vsock AlmaLinux:9All versions6:0.7.3-3.el9_4.alma.1
containernetworking-plugins Red Hat:enterprise_linux:9::appstreamAll versions1:1.4.0-3.el9_4
containernetworking-plugins-debuginfo Red Hat:enterprise_linux:9::appstreamAll versions1:1.4.0-3.el9_4
containernetworking-plugins-debugsource Red Hat:enterprise_linux:9::appstreamAll versions1:1.4.0-3.el9_4
gvisor-tap-vsock Red Hat:enterprise_linux:9::appstreamAll versions6:0.7.3-3.el9_4
gvisor-tap-vsock-debuginfo Red Hat:enterprise_linux:9::appstreamAll versions6:0.7.3-3.el9_4
gvisor-tap-vsock-debugsource Red Hat:enterprise_linux:9::appstreamAll versions6:0.7.3-3.el9_4
gvisor-tap-vsock Rocky Linux:9All versions6:0.7.3-3.el9_4

How do I fix CVE-2023-45290?

Upgrade golang to a fixed version for your release line: 1.21.8 or 1.22.1.

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-45290 being exploited?

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

Sources

Also known as ALSA-2024:3830, ALSA-2024:3831, AZL-37493, AZL-37504, AZL-79032, AZL-98844 and 12 more.

Is CVE-2023-45290 in your software?

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

Check your SBOMs for free