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 conmonUpgrade golang-miscUpgrade buildah-testsUpgrade slirp4netnsUpgrade criu-libsUpgrade golang-testsUpgrade aardvark-dnsUpgrade netavarkUpgrade buildahUpgrade golangUpgrade libslirp-develUpgrade podman-catatonitUpgrade golang-raceUpgrade podmanUpgrade fuse-overlayfsUpgrade containers-commonUpgrade podman-gvproxyUpgrade python3-podmanUpgrade golang-srcUpgrade cockpit-podmanUpgrade podman-testsUpgrade oci-seccomp-bpf-hookUpgrade criuUpgrade skopeoUpgrade libslirpUpgrade toolboxUpgrade golang-binUpgrade runcUpgrade critUpgrade udicaUpgrade delveUpgrade containernetworking-pluginsUpgrade criu-develUpgrade podman-remoteUpgrade python3-criuUpgrade golang-docsUpgrade toolbox-testsUpgrade crunUpgrade podman-dockerUpgrade go-toolsetUpgrade container-selinuxUpgrade podman-pluginsUpgrade skopeo-tests | May 23, 2023 | Feb 28, 2023 |
| Alpine Linux | — | Upgrade go | Aug 22, 2024 | Feb 28, 2023 |
| Amazon Linux Ami 2 | — | Upgrade containerdUpgrade containerd-debuginfoUpgrade golang-binUpgrade containerd-stressUpgrade golang-sharedUpgrade golang-testsUpgrade golang-docsUpgrade golangUpgrade golang-miscUpgrade golang-raceUpgrade golang-src | Apr 21, 2023 | Feb 28, 2023 |
| Amazon_linux | — | Upgrade golang | Apr 21, 2023 | Feb 14, 2023 |
| Amazon_linux_2023 | — | Upgrade golangUpgrade golang-testsUpgrade golang-miscUpgrade golang-docsUpgrade golang-raceUpgrade golang-binUpgrade golang-srcUpgrade golang-shared | Feb 17, 2025 | Feb 15, 2023 |
| Centos_linux | — | Upgrade critUpgrade skopeo-debugsourceUpgrade buildah-testsUpgrade conmon-debuginfoUpgrade crun-debuginfoUpgrade golang-miscUpgrade udicaUpgrade podman-debuginfoUpgrade aardvark-dnsUpgrade podman-plugins-debuginfoUpgrade buildah-debuginfoUpgrade podman-dockerUpgrade buildahUpgrade toolbox-debuginfoUpgrade golang-docsUpgrade cockpit-podmanUpgrade container-selinuxUpgrade criu-debugsourceUpgrade podman-debugsourceUpgrade libslirpUpgrade toolbox-testsUpgrade runc-debugsourceUpgrade slirp4netnsUpgrade podman-testsUpgrade buildah-tests-debuginfoUpgrade go-toolsetUpgrade slirp4netns-debuginfoUpgrade python3-criuUpgrade fuse-overlayfs-debugsourceUpgrade podman-gvproxy-debuginfoUpgrade criu-debuginfoUpgrade libslirp-debuginfoUpgrade golangUpgrade podman-gvproxyUpgrade golang-srcUpgrade skopeo-debuginfoUpgrade golang-testsUpgrade conmonUpgrade fuse-overlayfsUpgrade containers-commonUpgrade containernetworking-plugins-debuginfoUpgrade buildah-debugsourceUpgrade toolboxUpgrade fuse-overlayfs-debuginfoUpgrade podman-remote-debuginfoUpgrade runcUpgrade python3-podmanUpgrade netavarkUpgrade crunUpgrade delve-debuginfoUpgrade crun-debugsourceUpgrade conmon-debugsourceUpgrade slirp4netns-debugsourceUpgrade runc-debuginfoUpgrade podman-catatonit-debuginfoUpgrade podmanUpgrade oci-seccomp-bpf-hook-debugsourceUpgrade oci-seccomp-bpf-hookUpgrade libslirp-develUpgrade libslirp-debugsourceUpgrade containernetworking-pluginsUpgrade golang-raceUpgrade criu-libs-debuginfoUpgrade podman-remoteUpgrade podman-pluginsUpgrade oci-seccomp-bpf-hook-debuginfoUpgrade golang-binUpgrade delve-debugsourceUpgrade toolbox-debugsourceUpgrade delveUpgrade skopeo-testsUpgrade skopeoUpgrade podman-catatonitUpgrade criu-libsUpgrade criu-develUpgrade criuUpgrade containernetworking-plugins-debugsource | May 17, 2023 | Feb 28, 2023 |
| Debian | — | Upgrade golang-1.19 | Jul 30, 2024 | Feb 28, 2023 |
| Freebsd | — | Upgrade go120Upgrade go119 | Feb 17, 2023 | Feb 15, 2023 |
| Gentoo Linux | — | Upgrade dev-lang/go. | Nov 27, 2023 | Feb 28, 2023 |
| Huawei Euleros 2_0_sp10 | — | Upgrade golangUpgrade golang-develUpgrade golang-help | 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 golang-helpUpgrade golang | May 10, 2023 | Feb 28, 2023 |
| Oracle_linux | — | Upgrade podman-pluginsUpgrade containers-commonUpgrade skopeo-testsUpgrade aardvark-dnsUpgrade golangUpgrade container-selinuxUpgrade criu-develUpgrade delveUpgrade go-toolsetUpgrade conmonUpgrade podman-gvproxyUpgrade podman-testsUpgrade oci-seccomp-bpf-hookUpgrade cockpit-podmanUpgrade criu-libsUpgrade libslirpUpgrade golang-miscUpgrade golang-raceUpgrade python3-podmanUpgrade libslirp-develUpgrade slirp4netnsUpgrade golang-srcUpgrade netavarkUpgrade podmanUpgrade buildahUpgrade skopeoUpgrade podman-dockerUpgrade crunUpgrade udicaUpgrade podman-catatonitUpgrade criuUpgrade golang-binUpgrade buildah-testsUpgrade python3-criuUpgrade critUpgrade containernetworking-pluginsUpgrade runcUpgrade podman-remoteUpgrade golang-testsUpgrade golang-docsUpgrade fuse-overlayfs | May 25, 2023 | Feb 15, 2023 |
| Redhat Openshift | — | Upgrade conmonUpgrade openshift-clientsUpgrade skopeoUpgrade podman | May 19, 2023 | Feb 15, 2023 |
| Redhat_linux | — | Upgrade criu-debuginfoUpgrade go-toolsetUpgrade skopeo-debuginfoUpgrade golang-srcUpgrade buildah-testsUpgrade skopeo-debugsourceUpgrade podman-testsUpgrade python3-podmanUpgrade toolbox-debugsourceUpgrade conmon-debugsourceUpgrade podman-catatonitUpgrade criu-debugsourceUpgrade golangUpgrade slirp4netnsUpgrade golang-testsUpgrade buildah-tests-debuginfoUpgrade toolbox-testsUpgrade conmon-debuginfoUpgrade criu-libs-debuginfoNo solution existsUpgrade podman-dockerUpgrade buildah-debuginfoUpgrade cockpit-podmanUpgrade fuse-overlayfs-debugsourceUpgrade udicaUpgrade criuUpgrade runc-debugsourceUpgrade runcUpgrade buildahUpgrade libslirpUpgrade fuse-overlayfsUpgrade netavarkUpgrade podman-gvproxyUpgrade aardvark-dnsUpgrade golang-binUpgrade golang-miscUpgrade podman-remote-debuginfoUpgrade crun-debuginfoUpgrade podman-remoteUpgrade crunUpgrade golang-raceUpgrade podmanUpgrade libslirp-debuginfoUpgrade oci-seccomp-bpf-hookUpgrade delve-debuginfoUpgrade toolbox-debuginfoUpgrade podman-gvproxy-debuginfoUpgrade oci-seccomp-bpf-hook-debuginfoUpgrade buildah-debugsourceUpgrade slirp4netns-debugsourceUpgrade podman-pluginsUpgrade criu-develUpgrade criu-libsUpgrade python3-criuUpgrade containernetworking-pluginsUpgrade libslirp-debugsourceUpgrade delveUpgrade toolboxUpgrade skopeo-testsUpgrade runc-debuginfoUpgrade podman-plugins-debuginfoUpgrade containers-commonUpgrade golang-docsUpgrade containernetworking-plugins-debuginfoUpgrade delve-debugsourceUpgrade skopeoUpgrade podman-catatonit-debuginfoUpgrade crun-debugsourceUpgrade podman-debuginfoUpgrade critUpgrade libslirp-develUpgrade containernetworking-plugins-debugsourceUpgrade fuse-overlayfs-debuginfoUpgrade conmonUpgrade container-selinuxUpgrade slirp4netns-debuginfoUpgrade podman-debugsourceUpgrade oci-seccomp-bpf-hook-debugsource | May 17, 2023 | Feb 28, 2023 |
| Rocky_linux | — | Upgrade conmonUpgrade containernetworking-plugins-debuginfoUpgrade oci-seccomp-bpf-hook-debugsourceUpgrade crunUpgrade runc-debuginfoUpgrade containernetworking-pluginsUpgrade fuse-overlayfs-debuginfoUpgrade containernetworking-plugins-debugsourceUpgrade delve-debugsourceUpgrade oci-seccomp-bpf-hook-debuginfoUpgrade podman-debugsourceUpgrade slirp4netns-debugsourceUpgrade libslirp-develUpgrade slirp4netns-debuginfoUpgrade delveUpgrade podman-remoteUpgrade podman-gvproxy-debuginfoUpgrade golang-raceUpgrade podman-remote-debuginfoUpgrade crun-debugsourceUpgrade oci-seccomp-bpf-hookUpgrade podman-debuginfoUpgrade fuse-overlayfs-debugsourceUpgrade golang-binUpgrade podman-catatonit-debuginfoUpgrade buildah-debugsourceUpgrade criu-libsUpgrade containers-commonUpgrade criu-develUpgrade libslirp-debugsourceUpgrade podmanUpgrade podman-pluginsUpgrade delve-debuginfoUpgrade crun-debuginfoUpgrade libslirpUpgrade podman-testsUpgrade python3-criuUpgrade podman-gvproxyUpgrade go-toolsetUpgrade criu-debugsourceUpgrade slirp4netnsUpgrade buildahUpgrade netavarkUpgrade criu-debuginfoUpgrade conmon-debugsourceUpgrade conmon-debuginfoUpgrade buildah-testsUpgrade podman-catatonitUpgrade criuUpgrade runc-debugsourceUpgrade runcUpgrade fuse-overlayfsUpgrade aardvark-dnsUpgrade libslirp-debuginfoUpgrade buildah-debuginfoUpgrade critUpgrade podman-plugins-debuginfoUpgrade golangUpgrade criu-libs-debuginfoUpgrade buildah-tests-debuginfo | Mar 5, 2024 | Feb 28, 2023 |
| Suse | — | Upgrade go1.18Upgrade go1.19Upgrade go1.20-docUpgrade go1.20-raceUpgrade container-suseconnectUpgrade go1.18-opensslUpgrade go1.18-openssl-docUpgrade go1.20Upgrade go1.19-raceUpgrade go1.18-docUpgrade go1.18-openssl-raceUpgrade go1.19-docUpgrade go1.18-race | Mar 15, 2023 | Feb 28, 2023 |
| Ubuntu | — | Upgrade golang-1.18 (Ubuntu Pro)Upgrade golang-1.18Upgrade golang-1.19-srcUpgrade golang-1.17-srcUpgrade golang-1.18-srcUpgrade golang-1.17-goUpgrade golang-1.17Upgrade golang-1.18-src (Ubuntu Pro)Upgrade golang-1.18-goUpgrade golang-1.19-goUpgrade golang-1.19Upgrade golang-1.18-go (Ubuntu Pro) | 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