A denial of service is possible from excessive resource consumption in net/http and mime/multipart. Multipart form parsing with mime/multipart.Reader.ReadForm can consume largely unlimited amounts of memory and disk files. This also affects form parsing in the net/http package with the Request methods FormFile, FormValue, ParseMultipartForm, and PostFormValue. ReadForm takes a maxMemory parameter, and is documented as storing "up to maxMemory bytes +10MB (reserved for non-file parts) in memory". File parts which cannot be stored in memory are stored on disk in temporary files. The unconfigurable 10MB reserved for non-file parts is excessively large and can potentially open a denial of service vector on its own. However, ReadForm did not properly account for all memory consumed by a parsed form, such as map entry overhead, part names, and MIME headers, permitting a maliciously crafted form to consume well over 10MB. In addition, ReadForm contained no limit on the number of disk files created, permitting a relatively small request body to create a large number of disk temporary files. With fix, ReadForm now properly accounts for various forms of memory overhead, and should now stay within its documented limit of 10MB + maxMemory bytes of memory consumption. Users should still be aware that this limit is high and may still be hazardous. In addition, ReadForm now creates at most one on-disk temporary file, combining multiple form parts into a single temporary file. The mime/multipart.File interface type's documentation states, "If stored on disk, the File's underlying concrete type will be an *os.File.". This is no longer the case when a form contains more than one file part, due to this coalescing of parts into a single file. The previous behavior of using distinct files for each form part may be reenabled with the environment variable GODEBUG=multipartfiles=distinct. Users should be aware that multipart.ReadForm and the http.Request methods that call it do not limit the amount of disk consumed by temporary files. Callers can limit the size of form data with http.MaxBytesReader.
CVSS Details
- CVSS 3.1 Base Score: 7.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade golang-srcUpgrade podman-gvproxyUpgrade libslirpUpgrade podman-testsUpgrade criu-libsUpgrade python3-podmanUpgrade slirp4netnsUpgrade buildah-testsUpgrade oci-seccomp-bpf-hookUpgrade conmonUpgrade criuUpgrade buildahUpgrade fuse-overlayfsUpgrade libslirp-develUpgrade golangUpgrade containers-commonUpgrade golang-raceUpgrade cockpit-podmanUpgrade golang-miscUpgrade podman-catatonitUpgrade podmanUpgrade skopeoUpgrade toolboxUpgrade netavarkUpgrade aardvark-dnsUpgrade golang-testsUpgrade udicaUpgrade podman-remoteUpgrade go-toolsetUpgrade skopeo-testsUpgrade container-selinuxUpgrade python3-criuUpgrade criu-develUpgrade delveUpgrade critUpgrade crunUpgrade golang-docsUpgrade golang-binUpgrade toolbox-testsUpgrade podman-pluginsUpgrade runcUpgrade podman-dockerUpgrade containernetworking-plugins | May 23, 2023 | Feb 28, 2023 |
| Alpine Linux | — | Upgrade go | Aug 22, 2024 | Feb 28, 2023 |
| Amazon Linux Ami 2 | — | Upgrade containerdUpgrade golang-sharedUpgrade containerd-debuginfoUpgrade containerd-stressUpgrade golang-testsUpgrade golang-binUpgrade golang-docsUpgrade golang-miscUpgrade golang-raceUpgrade golangUpgrade golang-src | Apr 21, 2023 | Feb 28, 2023 |
| Amazon_linux | — | Upgrade golang | Apr 21, 2023 | Feb 14, 2023 |
| Amazon_linux_2023 | — | Upgrade golang-sharedUpgrade golang-srcUpgrade golang-docsUpgrade golang-testsUpgrade golangUpgrade golang-raceUpgrade golang-binUpgrade golang-misc | Feb 17, 2025 | Feb 15, 2023 |
| Centos_linux | — | Upgrade criuUpgrade conmonUpgrade buildah-debugsourceUpgrade skopeoUpgrade skopeo-testsUpgrade podman-catatonitUpgrade fuse-overlayfsUpgrade toolboxUpgrade containernetworking-plugins-debuginfoUpgrade containers-commonUpgrade fuse-overlayfs-debuginfoUpgrade containernetworking-plugins-debugsourceUpgrade podman-remote-debuginfoUpgrade criu-develUpgrade toolbox-debugsourceUpgrade criu-libsUpgrade libslirp-debugsourceUpgrade runcUpgrade delveUpgrade oci-seccomp-bpf-hook-debugsourceUpgrade podman-catatonit-debuginfoUpgrade oci-seccomp-bpf-hookUpgrade runc-debuginfoUpgrade podmanUpgrade netavarkUpgrade golang-testsUpgrade delve-debuginfoUpgrade containernetworking-pluginsUpgrade criu-libs-debuginfoUpgrade golang-raceUpgrade podman-remoteUpgrade conmon-debugsourceUpgrade crunUpgrade crun-debugsourceUpgrade delve-debugsourceUpgrade slirp4netns-debugsourceUpgrade golang-binUpgrade libslirp-develUpgrade oci-seccomp-bpf-hook-debuginfoUpgrade podman-pluginsUpgrade python3-podmanUpgrade slirp4netnsUpgrade toolbox-testsUpgrade runc-debugsourceUpgrade libslirpUpgrade podman-dockerUpgrade slirp4netns-debuginfoUpgrade crun-debuginfoUpgrade critUpgrade conmon-debuginfoUpgrade podman-debugsourceUpgrade python3-criuUpgrade buildah-tests-debuginfoUpgrade container-selinuxUpgrade cockpit-podmanUpgrade golang-docsUpgrade golangUpgrade skopeo-debuginfoUpgrade golang-srcUpgrade fuse-overlayfs-debugsourceUpgrade buildahUpgrade aardvark-dnsUpgrade buildah-debuginfoUpgrade libslirp-debuginfoUpgrade podman-debuginfoUpgrade podman-testsUpgrade podman-gvproxyUpgrade criu-debuginfoUpgrade buildah-testsUpgrade skopeo-debugsourceUpgrade criu-debugsourceUpgrade golang-miscUpgrade udicaUpgrade podman-plugins-debuginfoUpgrade toolbox-debuginfoUpgrade podman-gvproxy-debuginfoUpgrade go-toolset | May 17, 2023 | Feb 28, 2023 |
| Debian | — | Upgrade golang-1.19 | Jul 30, 2024 | Feb 28, 2023 |
| Freebsd | — | Upgrade go119Upgrade go120 | Feb 17, 2023 | Feb 15, 2023 |
| Gentoo Linux | — | Upgrade dev-lang/go. | Nov 27, 2023 | Feb 28, 2023 |
| Huawei Euleros 2_0_sp10 | — | Upgrade golang-helpUpgrade golangUpgrade golang-devel | May 9, 2023 | Feb 28, 2023 |
| Huawei Euleros 2_0_sp11 | — | Upgrade golang-helpUpgrade golangUpgrade golang-devel | Jul 5, 2023 | Feb 28, 2023 |
| Huawei Euleros 2_0_sp9 | — | Upgrade golang-develUpgrade golangUpgrade golang-help | May 10, 2023 | Feb 28, 2023 |
| Oracle_linux | — | Upgrade runcUpgrade fuse-overlayfsUpgrade golang-docsUpgrade buildahUpgrade golang-testsUpgrade critUpgrade skopeoUpgrade podman-remoteUpgrade criuUpgrade containernetworking-pluginsUpgrade podman-catatonitUpgrade python3-criuUpgrade golang-binUpgrade podman-dockerUpgrade udicaUpgrade podmanUpgrade crunUpgrade buildah-testsUpgrade criu-develUpgrade python3-podmanUpgrade libslirp-develUpgrade golang-miscUpgrade podman-testsUpgrade conmonUpgrade slirp4netnsUpgrade criu-libsUpgrade podman-pluginsUpgrade oci-seccomp-bpf-hookUpgrade libslirpUpgrade podman-gvproxyUpgrade containers-commonUpgrade golangUpgrade go-toolsetUpgrade delveUpgrade container-selinuxUpgrade aardvark-dnsUpgrade golang-raceUpgrade cockpit-podmanUpgrade golang-srcUpgrade skopeo-testsUpgrade netavark | May 25, 2023 | Feb 15, 2023 |
| Redhat Openshift | — | Upgrade podmanUpgrade openshift-clientsUpgrade skopeoUpgrade conmon | May 19, 2023 | Feb 15, 2023 |
| Redhat_linux | — | Upgrade conmon-debuginfoUpgrade podman-testsUpgrade python3-podmanNo solution existsUpgrade podman-catatonitUpgrade buildah-tests-debuginfoUpgrade buildahUpgrade toolbox-testsUpgrade fuse-overlayfsUpgrade runc-debugsourceUpgrade criu-libs-debuginfoUpgrade skopeo-debuginfoUpgrade podman-dockerUpgrade golang-srcUpgrade criuUpgrade skopeo-debugsourceUpgrade go-toolsetUpgrade udicaUpgrade criu-debugsourceUpgrade netavarkUpgrade runcUpgrade libslirpUpgrade podman-gvproxyUpgrade golangUpgrade conmon-debugsourceUpgrade toolbox-debugsourceUpgrade criu-debuginfoUpgrade slirp4netnsUpgrade golang-binUpgrade fuse-overlayfs-debugsourceUpgrade aardvark-dnsUpgrade golang-miscUpgrade cockpit-podmanUpgrade golang-testsUpgrade buildah-testsUpgrade buildah-debuginfoUpgrade podman-remoteUpgrade containernetworking-plugins-debuginfoUpgrade python3-criuUpgrade podmanUpgrade delve-debugsourceUpgrade toolbox-debuginfoUpgrade containers-commonUpgrade libslirp-develUpgrade oci-seccomp-bpf-hook-debuginfoUpgrade delve-debuginfoUpgrade buildah-debugsourceUpgrade podman-remote-debuginfoUpgrade runc-debuginfoUpgrade crunUpgrade podman-pluginsUpgrade podman-debuginfoUpgrade golang-docsUpgrade critUpgrade podman-plugins-debuginfoUpgrade crun-debugsourceUpgrade criu-develUpgrade delveUpgrade toolboxUpgrade podman-catatonit-debuginfoUpgrade oci-seccomp-bpf-hookUpgrade podman-gvproxy-debuginfoUpgrade slirp4netns-debugsourceUpgrade libslirp-debuginfoUpgrade crun-debuginfoUpgrade criu-libsUpgrade containernetworking-pluginsUpgrade skopeo-testsUpgrade skopeoUpgrade libslirp-debugsourceUpgrade containernetworking-plugins-debugsourceUpgrade podman-debugsourceUpgrade oci-seccomp-bpf-hook-debugsourceUpgrade slirp4netns-debuginfoUpgrade golang-raceUpgrade container-selinuxUpgrade conmonUpgrade fuse-overlayfs-debuginfo | May 17, 2023 | Feb 28, 2023 |
| Rocky_linux | — | Upgrade crun-debuginfoUpgrade criu-debuginfoUpgrade netavarkUpgrade conmon-debugsourceUpgrade buildahUpgrade podman-testsUpgrade conmon-debuginfoUpgrade golangUpgrade critUpgrade libslirpUpgrade go-toolsetUpgrade python3-criuUpgrade podman-gvproxyUpgrade slirp4netnsUpgrade criu-debugsourceUpgrade runcUpgrade buildah-tests-debuginfoUpgrade criu-libs-debuginfoUpgrade runc-debugsourceUpgrade aardvark-dnsUpgrade criuUpgrade buildah-debuginfoUpgrade podman-catatonitUpgrade buildah-testsUpgrade fuse-overlayfsUpgrade podman-plugins-debuginfoUpgrade libslirp-debuginfoUpgrade golang-binUpgrade podman-remoteUpgrade fuse-overlayfs-debuginfoUpgrade containers-commonUpgrade fuse-overlayfs-debugsourceUpgrade delve-debuginfoUpgrade podmanUpgrade podman-pluginsUpgrade criu-libsUpgrade podman-remote-debuginfoUpgrade criu-develUpgrade crun-debugsourceUpgrade libslirp-develUpgrade golang-raceUpgrade delveUpgrade podman-gvproxy-debuginfoUpgrade oci-seccomp-bpf-hook-debuginfoUpgrade podman-debugsourceUpgrade podman-debuginfoUpgrade buildah-debugsourceUpgrade containernetworking-plugins-debuginfoUpgrade runc-debuginfoUpgrade containernetworking-pluginsUpgrade conmonUpgrade slirp4netns-debugsourceUpgrade oci-seccomp-bpf-hook-debugsourceUpgrade crunUpgrade containernetworking-plugins-debugsourceUpgrade delve-debugsourceUpgrade podman-catatonit-debuginfoUpgrade libslirp-debugsourceUpgrade slirp4netns-debuginfoUpgrade oci-seccomp-bpf-hook | Mar 5, 2024 | Feb 28, 2023 |
| Suse | — | Upgrade go1.20-raceUpgrade go1.18Upgrade go1.18-openssl-docUpgrade go1.19Upgrade go1.20-docUpgrade go1.18-opensslUpgrade container-suseconnectUpgrade go1.18-docUpgrade go1.19-docUpgrade go1.19-raceUpgrade go1.20Upgrade go1.18-raceUpgrade go1.18-openssl-race | Mar 15, 2023 | Feb 28, 2023 |
| Ubuntu | — | Upgrade golang-1.19-goUpgrade golang-1.19Upgrade golang-1.18-go (Ubuntu Pro)Upgrade golang-1.18-goUpgrade golang-1.17-srcUpgrade golang-1.17Upgrade golang-1.18-srcUpgrade golang-1.18Upgrade golang-1.18 (Ubuntu Pro)Upgrade golang-1.18-src (Ubuntu Pro)Upgrade golang-1.19-srcUpgrade golang-1.17-go | Jun 7, 2023 | Feb 28, 2023 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Feb 28, 2023 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub