CVE-2023-24536 json
Excessive resource consumption in net/http, net/textproto and mime/multipart
published 2023-04-05 3 y ago modified 2026-09-08 2 mo ago also BIT-golang-2023-24536 , EUVD-2023-28552 , GO-2023-1705
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.5%
- EPSS 1.5% chance of exploitation in 30 days, percentile 74%
- public exploits
- 0
- none known
Summary
Multipart form parsing can consume large amounts of CPU and memory when processing form inputs containing very large numbers of parts. This stems from several causes: 1. mime/multipart.Reader.ReadForm limits the total memory a parsed multipart form can consume. ReadForm can undercount the amount of memory consumed, leading it to accept larger inputs than intended. 2. Limiting total memory does not account for increased pressure on the garbage collector from large numbers of small allocations in forms with many parts. 3. ReadForm can allocate a large number of short-lived buffers, further increasing pressure on the garbage collector. The combination of these factors can permit an attacker to cause an program that parses multipart forms to consume large amounts of CPU and memory, potentially resulting in a denial of service. This affects programs that use mime/multipart.Reader.ReadForm, as well as form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue. With fix, ReadForm now does a better job of estimating the memory consumption of parsed forms, and performs many fewer short-lived allocations. In addition, the fixed mime/multipart.Reader imposes the following limits on the size of parsed forms: 1. Forms parsed with ReadForm may contain no more than 1000 parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxparts=. 2. Form parts parsed with NextPart and NextRawPart may contain no more than 10,000 header fields. In addition, forms parsed with ReadForm may contain no more than 10,000 header fields across all parts. This limit may be adjusted with the environment variable GODEBUG=multipartmaxheaders=.
Patch / fix
- bitnami golang 1.19.8, 1.20.3
- go stdlib 1.19.8, 1.20.3
- Go standard library mime/multipart 1.19.8, 1.20.3
- Go standard library net/textproto 1.19.8, 1.20.3
- golang-1.19 Debian 12 1.19.8-2
debian advisories DEBIAN-CVE-2023-24536
- golang-1.17 Ubuntu 22.04 LTS 1.17.13-3ubuntu1.3
- golang-1.18 Ubuntu 20.04 LTS 1.18.1-1ubuntu1~20.04.3
- golang-1.18 Ubuntu 22.04 LTS 1.18.1-1ubuntu1.2
- golang-1.18 Ubuntu Pro 16.04 LTS 1.18.1-1ubuntu1~16.04.6+esm1
- golang-1.18 Ubuntu Pro 18.04 LTS 1.18.1-1ubuntu1~18.04.4+esm1
ubuntu advisories UBUNTU-CVE-2023-24536
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- crit RHEL 8 3.15-3.module+el8.9.0+19243+df4d9ff2
- criu RHEL 8 3.15-3.module+el8.9.0+19243+df4d9ff2
- crun RHEL 8 1.8.3-1.module+el8.9.0+19098+6e7a5e3f
- runc RHEL 8 1:1.1.5-2.module+el8.9.0+19104+fcef53a3
- udica RHEL 8 0.2.6-4.module+el8.9.0+19098+6e7a5e3f
- conmon RHEL 8 2:2.1.4-2.module+el8.9.0+19098+6e7a5e3f
- podman RHEL 8 2:4.0.2-24.module+el8.9.0+19784+443be299
- skopeo RHEL 8 2:1.6.2-8.module+el8.9.0+19104+fcef53a3
red hat advisories RHSA-2023:6938RHSA-2023:6939RHSA-2023:3319RHSA-2023:5964RHSA-2023:6473RHSA-2023:6474
- go1.19 SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Real Time 15 SP3 +5 more 1.19.9-150000.1.31.1
- go1.20 SLE Real Time 15 SP3, SLE Module for Development Tools 15 SP4, openSUSE Leap 15.4 1.20.4-150000.1.11.1
- go1.19 SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Real Time 15 SP3 +5 more 1.19.8-150000.1.26.1
- go1.20 SLE Module for Development Tools 15 SP4, openSUSE Leap 15.4 1.20.3-150000.1.8.1
suse advisories SUSE-SU-2023:2127-1SUSE-SU-2023:2105-2SUSE-SU-2023:2105-1SUSE-SU-2023:1792-1SUSE-SU-2023:1791-1
- go1.20 openSUSE Tumbleweed 1.20.3-1.1
- go1.19 openSUSE Tumbleweed 1.19.8-1.1
opensuse advisories openSUSE-SU-2024:12841-1openSUSE-SU-2024:12845-1
- crit AlmaLinux 8 3.15-3.module_el8.6.0+3137+d33c3efb
- crit AlmaLinux 8 3.15-3.module_el8.6.0+2877+8e437bf5
- criu AlmaLinux 8 3.15-3.module_el8.6.0+2877+8e437bf5
- criu AlmaLinux 8 3.15-3.module_el8.6.0+3137+d33c3efb
- crun AlmaLinux 8 1.8.3-1.module_el8.9.0+3627+db8ec155
- runc AlmaLinux 8 1:1.1.5-2.module_el8.9.0+3627+db8ec155
- udica AlmaLinux 8 0.2.6-4.module_el8.9.0+3627+db8ec155
- conmon AlmaLinux 8 2:2.1.4-2.module_el8.9.0+3627+db8ec155
almalinux advisories ALSA-2023:6938ALSA-2023:6939ALSA-2023:6346ALSA-2023:6363ALSA-2023:6402ALSA-2023:6473
- criu Rocky Linux 8 3.15-3.module+el8.9.0+1445+07728297
- crun Rocky Linux 8 1.8.3-1.module+el8.9.0+1445+07728297
- runc Rocky Linux 8 1:1.1.5-2.module+el8.9.0+1445+07728297
- udica Rocky Linux 8 0.2.6-4.module+el8.9.0+1445+07728297
- conmon Rocky Linux 8 2:2.1.4-2.module+el8.9.0+1445+07728297
- podman Rocky Linux 8 2:4.0.2-24.module+el8.9.0+1445+07728297
- buildah Rocky Linux 8 1:1.24.6-7.module+el8.9.0+1445+07728297
- libslirp Rocky Linux 8 4.4.0-1.module+el8.9.0+1445+07728297
rocky linux advisories RLSA-2023:6938RLSA-2023:6939
- go Alpine 3.17 1.19.8-r0
- go Alpine 3.24, Alpine 3.23, Alpine 3.22 +4 more 1.20.3-r0
alpine advisories ALPINE-CVE-2023-24536
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- msft-golang CBL-Mariner 2.0 1.20.7-1
- golang CBL-Mariner 2.0 1.21.6-1
azure linux advisories AZL-26028AZL-37340AZL-37431
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
- go.dev/issue/59153 patch
- go.dev/cl/482076 patch
- go.dev/cl/482075 patch
- go.dev/cl/482077 patch
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2023-24536 updated cvss 7.5
golang: net/http, net/textproto, mime/multipart: denial of service from excessive resource consumption
-
Red Hat Node HealthCheck Operator workload-availability/node-healthcheck-rhel8-operator Red Hat Node Maintenance Operator workload-availability/node-maintenance-rhel8-operatoraffected: workaround, no fix available
-
Red Hat OpenShift Developer Tools and Services odo, helm, ocp-tools-4/jenkins-rhel8affected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat OpenShift Pipelines openshift-pipelines-clientaffected: workaround, no fix available
-
Red Hat OpenShift Service Mesh 2 openshift-golang-builder-containeraffected: workaround, no fix planned “Will not fix”
-
Red Hat 3scale API Management Platform 2 3scale-amp26/3scale-operator Red Hat Advanced Cluster Management for Kubernetes 2 thanos-contain Red Hat Advanced Cluster Security 3 advanced-cluster-security/rhacs-main-rhel8 Red Hat AMQ Broker 7 ansible-automation-platform-24/controller-rhel8-operator Red Hat Ansible Automation Platform 2 receptor Red Hat Application Interconnect 1.0 skupper-cliaffected: workaround, no fix available
-
Red Hat Ceph Storage 3 golang, golang-bin, golang-srcaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Ceph Storage 5 rhceph/rhceph-5-dashboard-rhel8affected: workaround, no fix available
-
Red Hat Enterprise Linux 8 podman, skopeo, buildah, git-lfs, toolbox, podman-tests, +16 moreaffected: workaround, no fix available, no fix planned “Will not fix”
show 24 moreshow fewer
-
Red Hat Enterprise Linux 9 git-lfs, ignition, weldr-client, ignition-edge, ignition-grub, osbuild-composer, +4 moreaffected: workaround, no fix planned “Will not fix”
-
Red Hat OpenShift Container Platform 4 butane, buildah, ignition, openshift, buildah-tests, ignition-validate, +10 moreaffected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat OpenShift Dev Spaces devspaces/udi-rhel8 Red Hat OpenShift distributed tracing 2 rhosdt/jaeger-agent-rhel8affected: workaround, no fix available
-
Red Hat OpenShift GitOps openshift-gitops-kam, openshift-gitops-1/gitops-rhel8affected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat OpenShift on AWS rosaaffected: workaround, no fix available
-
Red Hat Openshift Sandboxed Containers openshift-sandboxed-containers/osc-rhel8-operatoraffected: workaround, no fix planned “Out of support scope”
-
Red Hat OpenShift Virtualization 4 kubevirtaffected: workaround, no fix available
-
Red Hat OpenStack Platform 17.0 collectd-libpod-stats, golang-github-infrawatch-apputilsaffected: workaround, no fix planned “Will not fix”
-
Red Hat Storage 3 golang, heketi, golang-bin, golang-src, golang-misc, golang-tests, +3 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Web Terminal web-terminal-exec-container Red Hat Self Node Remediation Operator workload-availability/self-node-remediation-rhel8-operatoraffected: workaround, no fix available
-
Red Hat Service Telemetry Framework 1.4 for RHEL 8 stf/sg-core-rhel8affected: workaround, no fix planned “Will not fix”
-
Red Hat CNV 4.13 for RHEL 9 container-native-virtualization/virt-api-rhel9 v4.13.3--2023-117063, container-native-virtualization/kubevirt-dpdk-checkup-rhel9 v4.13.3--2023-117063, container-native-virtualization/kubevirt-ssp-operator-rhel9 v4.13.3--2023-117063, container-native-virtualization/kubevirt-console-plugin-rhel9 v4.13.3--2023-117063, container-native-virtualization/kubevirt-template-validator-rhel9 v4.13.3--2023-117063, container-native-virtualization/kubevirt-tekton-tasks-operator-rhel9 v4.13.3--2023-117063, +7 morefixed: vendor fix RHSA-2023:4664
-
Red Hat Cryostat 2 on RHEL 8 cryostat-tech-preview/cryostat-rhel8 2.3.0-5, cryostat-tech-preview/jfr-datasource-rhel8 2.3.0-5, cryostat-tech-preview/cryostat-reports-rhel8 2.3.0-5, cryostat-tech-preview/cryostat-rhel8-operator 2.3.0-5, cryostat-tech-preview/cryostat-operator-bundle 2.3.0-5, cryostat-tech-preview/cryostat-grafana-dashboard-rhel8 2.3.0-5fixed: vendor fix RHSA-2023:3167
-
Red Hat Middleware Containers for OpenShift amq7/amq-broker-rhel8-operator 7.12.0-16, amq7/amq-broker-rhel8-operator-bundle 7.12.0-10fixed: vendor fix RHSA-2024:2944
-
Red Hat Migration Toolkit for Virtualization 2.4 migration-toolkit-virtualization/mtv-controller-rhel9 2.4.3-5fixed: vendor fix RHBA-2023:6109
-
Red Hat MTA 6.2 for RHEL 8 mta/mta-hub-rhel9 6.2.0-16fixed: vendor fix RHSA-2023:4627
-
Red Hat OpenShift API for Data Protection 1.1 oadp/oadp-velero-rhel8 1.1.5-3fixed: vendor fix RHSA-2023:3918
-
Red Hat OSSO 1.1 for RHEL 8 openshift-secondary-scheduler-operator/secondary-scheduler-operator-rhel8 v1.1-30fixed: vendor fix RHSA-2023:4657
-
Red Hat Quay v3 quay/clair-rhel8 v3.8.11-3, quay/quay-rhel8 v3.8.11-13, quay/quay-builder-rhel8 v3.8.11-4, quay/quay-operator-rhel8 v3.8.11-3, quay/quay-operator-bundle v3.8.11-20, quay/quay-bridge-operator-rhel8 v3.8.11-3, +4 morefixed: vendor fix RHBA-2023:4275
-
Red Hat Ansible Automation Platform 2.3 for RHEL 8 openshift-clients 4.12.0-202307200611.p0.g49844f7.assembly.stream.el8fixed: vendor fix RHSA-2023:4470
-
Red Hat Enterprise Linux AppStream (v. 8) crit 3.15-3.module+el8.9.0+19243+df4d9ff2, crit 3.18-4.module+el8.9.0+19090+d2921118, criu 3.15-3.module+el8.9.0+19243+df4d9ff2, criu 3.18-4.module+el8.9.0+19090+d2921118, crun 1.8.3-1.module+el8.9.0+19098+6e7a5e3f, crun 1.8.7-1.module+el8.9.0+19731+94cfa27e, +68 morefixed: vendor fix RHSA-2023:3319
-
Red Hat Enterprise Linux AppStream (v. 9) podman 4.6.1-5.el9, skopeo 1.13.3-1.el9, buildah 1.31.3-1.el9, golang 1.19.9-2.el9_2, podman-tests 4.6.1-5.el9, toolbox 0.0.99.4-6.el9_3, +13 morefixed: vendor fix RHSA-2023:3318
-
Red Hat Migration Toolkit 1.7 rhmtc/openshift-velero-plugin-rhel8 v1.7.10-2fixed: vendor fix RHSA-2023:3624
-
Red Hat OpenShift Container Platform 4.13 conmon 2.1.7-2.rhaos4.13.el8, podman 4.4.1-4.rhaos4.13.el8, skopeo 1.11.2-2.rhaos4.13.el8, conmon 2.1.7-2.1.rhaos4.13.el9, podman 4.4.1-5.1.rhaos4.13.el9, skopeo 1.11.2-2.1.rhaos4.13.el9, +203 morefixed: vendor fix RHSA-2023:3612
6 more fixed, 22 more not affected in the full advisory
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 20 mo ago
Exploit prediction
1.48% chance of exploitation in the next 30 days, higher than 74% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| bitnami | golang | <1.19.8 >=1.20.0, <1.20.3 |
1.19.8 1.20.3 |
| go | stdlib | <1.19.8 >=1.20.0-0, <1.20.3 |
1.19.8 1.20.3 |
Affected products
- Go standard library mime/multipart
- Go standard library net/textproto
Classification
- Weakness
-
- CWE-770 Allocation of Resources Without Limits or Throttling
References
-
go.dev
/issue/59153
issue-tracking, patch, report
-
go.dev
/cl/482076
patch
-
go.dev
/cl/482075
patch
-
go.dev
/cl/482077
patch
-
pkg.go.dev
/vuln/GO-2023-1705
vendor-advisory, advisory
-
groups.google.com
/g/golang-announce/c/Xdv6JL9ENs8
mailing-list, discussion, web
-
security.netapp.com
/advisory/ntap-20230526-0007/
web
-
security.gentoo.org
/glsa/202311-09
web
-
nvd.nist.gov
/vuln/detail/CVE-2023-24536
web
Sources
- CVE List CVE-2023-24536
- NVD CVE-2023-24536
- OSV BIT-golang-2023-24536
- OSV GO-2023-1705
Fencer Vulns 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.