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