CVE-2022-32221
curl: POST following PUT confusion
Severity by source
Trivy's own label is CRITICAL. Rated critical by NVD, Azure Linux, Julia, Photon OS. Rated lower by Red Hat (medium), AlmaLinux (medium), Amazon (medium), Oracle (medium), Rocky Linux (medium), Ubuntu (medium).
Description
When doing HTTP(S) transfers, libcurl might erroneously use the read callback (`CURLOPT_READFUNCTION`) to ask for data to send, even when the `CURLOPT_POSTFIELDS` option has been set, if the same handle previously was used to issue a `PUT` request which used that callback. This flaw may surprise the application and cause it to misbehave and either send off the wrong data or use memory after free or similar in the subsequent `POST` request. The problem exists in the logic for a reused handle when it is changed from a PUT to a POST.
Affected packages and fixed versions
| Source | Package | Fixed in |
|---|---|---|
| Azure Linux 3.0 | tensorflow | 0:2.16.1-1.azl3 |
| julia::Julia Ecosystem Security Advisories | CURL_jll, LibCURL_jll | 8.5.0+0 and 1 more |
| Photon OS 3.0 | cmake | 3.13.5-2.ph3 |
| alma 9 | curl, curl-minimal, libcurl and 2 more | 7.76.1-19.el9_1.1 |
| alpine 3.15 | curl | 7.80.0-r4 |
| alpine 3.16 | curl | 7.83.1-r4 |
| alpine 3.17 | curl | 7.86.0-r0 |
| alpine 3.18 | curl | 7.86.0-r0 |
| alpine 3.19 | curl | 7.86.0-r0 |
| alpine 3.20 | curl | 7.86.0-r0 |
| alpine 3.21 | curl | 7.86.0-r0 |
| alpine 3.22 | curl | 7.86.0-r0 |
Show all 87 entries from 44 sources
| Source | Package | Fixed in |
|---|---|---|
| Azure Linux 3.0 | tensorflow | 0:2.16.1-1.azl3 |
| julia::Julia Ecosystem Security Advisories | CURL_jll | 8.5.0+0 |
| julia::Julia Ecosystem Security Advisories | LibCURL_jll | 7.87.0+0 |
| Photon OS 3.0 | cmake | 3.13.5-2.ph3 |
| alma 9 | curl | 7.76.1-19.el9_1.1 |
| alma 9 | curl-minimal | 7.76.1-19.el9_1.1 |
| alma 9 | libcurl | 7.76.1-19.el9_1.1 |
| alma 9 | libcurl-devel | 7.76.1-19.el9_1.1 |
| alma 9 | libcurl-minimal | 7.76.1-19.el9_1.1 |
| alpine 3.15 | curl | 7.80.0-r4 |
| alpine 3.16 | curl | 7.83.1-r4 |
| alpine 3.17 | curl | 7.86.0-r0 |
| alpine 3.18 | curl | 7.86.0-r0 |
| alpine 3.19 | curl | 7.86.0-r0 |
| alpine 3.20 | curl | 7.86.0-r0 |
| alpine 3.21 | curl | 7.86.0-r0 |
| alpine 3.22 | curl | 7.86.0-r0 |
| alpine 3.23 | curl | 7.86.0-r0 |
| alpine 3.24 | curl | 7.86.0-r0 |
| alpine edge | curl | 7.86.0-r0 |
| amazon linux 2 | curl | 7.79.1-7.amzn2.0.1 |
| amazon linux 2 | curl-debuginfo | 7.79.1-7.amzn2.0.1 |
| amazon linux 2 | libcurl | 7.79.1-7.amzn2.0.1 |
| amazon linux 2 | libcurl-devel | 7.79.1-7.amzn2.0.1 |
| amazon linux 2022 | curl | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | curl-debuginfo | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | curl-debugsource | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | curl-minimal | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | curl-minimal-debuginfo | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | libcurl | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | libcurl-debuginfo | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | libcurl-devel | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | libcurl-minimal | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2022 | libcurl-minimal-debuginfo | 7.86.0-1.amzn2022.0.1 |
| amazon linux 2023 | curl | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | curl-debuginfo | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | curl-debugsource | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | curl-minimal | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | curl-minimal-debuginfo | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | libcurl | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | libcurl-debuginfo | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | libcurl-devel | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | libcurl-minimal | 7.87.0-2.amzn2023.0.2 |
| amazon linux 2023 | libcurl-minimal-debuginfo | 7.87.0-2.amzn2023.0.2 |
| chainguard | curl | 7.86.0-r0 |
| debian 10 | curl | 7.64.0-4+deb10u4 |
| debian 11 | curl | 7.74.0-1.3+deb11u5 |
| debian 12 | curl | 7.86.0-1 |
| debian 13 | curl | 7.86.0-1 |
| debian 14 | curl | 7.86.0-1 |
| echo | curl | 7.86.0-1 |
| echo | curl-7.69.1 | 7.69.1+e1 |
| Oracle Linux 9 | curl | 7.76.1-19.el9_1.1 |
| Oracle Linux 9 | curl-minimal | 7.76.1-19.el9_1.1 |
| Oracle Linux 9 | libcurl | 7.76.1-19.el9_1.1 |
| Oracle Linux 9 | libcurl-devel | 7.76.1-19.el9_1.1 |
| Oracle Linux 9 | libcurl-minimal | 7.76.1-19.el9_1.1 |
| rapidfort Oracle Linux 9 | curl | 0:7.76.1-19.el9_1.1 |
| rapidfort Oracle Linux 9 | curl-minimal | 0:7.76.1-19.el9_1.1 |
| rapidfort Oracle Linux 9 | libcurl | 0:7.76.1-19.el9_1.1 |
| rapidfort Oracle Linux 9 | libcurl-devel | 0:7.76.1-19.el9_1.1 |
| rapidfort Oracle Linux 9 | libcurl-minimal | 0:7.76.1-19.el9_1.1 |
| rapidfort ubuntu 20.04 | curl | 0:7.81.0-1ubuntu1.6 |
| rapidfort ubuntu 20.04 | rf-curl | 0:7.81.0-1ubuntu1.6 |
| rapidfort ubuntu 22.04 | curl | 0:7.81.0-1ubuntu1.6 |
| rapidfort ubuntu 22.04 | rf-curl | 0:7.81.0-1ubuntu1.6 |
| rapidfort ubuntu 24.04 | curl | 0:7.81.0-1ubuntu1.6 |
| rapidfort ubuntu 24.04 | rf-curl | 0:7.81.0-1ubuntu1.6 |
| rocky 9 | curl | 7.76.1-19.el9_1.1 |
| rocky 9 | curl-minimal | 7.76.1-19.el9_1.1 |
| rocky 9 | libcurl | 7.76.1-19.el9_1.1 |
| rocky 9 | libcurl-devel | 7.76.1-19.el9_1.1 |
| rocky 9 | libcurl-minimal | 7.76.1-19.el9_1.1 |
| root.io debian 11 | rootio-curl | 7.74.0-1.3+deb11u5 |
| root.io debian 12 | rootio-curl | 7.86.0-1 |
| root.io debian 13 | rootio-curl | 7.86.0-1 |
| seal Red Hat 8 | curl | 7.61.1-34.el8_10.3+sp999 |
| seal Red Hat 8 | seal-curl | 7.61.1-34.el8_10.3+sp999 |
| ubuntu 14.04-ESM | curl | 7.35.0-1ubuntu2.20+esm13 |
| ubuntu 16.04-ESM | curl | 7.47.0-1ubuntu2.19+esm6 |
| ubuntu 18.04 | curl | 7.58.0-2ubuntu3.21 |
| ubuntu 18.04-ESM | curl | 7.58.0-2ubuntu3.21 |
| ubuntu 20.04 | curl | 7.68.0-1ubuntu2.14 |
| ubuntu 20.04-ESM | curl | 7.68.0-1ubuntu2.14 |
| ubuntu 22.04 | curl | 7.81.0-1ubuntu1.6 |
| ubuntu 22.10 | curl | 7.85.0-1ubuntu0.1 |
| wolfi | curl | 7.86.0-r0 |
References
- http://seclists.org/fulldisclosure/2023/Jan/19
- http://seclists.org/fulldisclosure/2023/Jan/20
- http://www.openwall.com/lists/oss-security/2023/05/17/4
- https://access.redhat.com/errata/RHSA-2023:0333
- https://access.redhat.com/security/cve/CVE-2022-32221
- https://bugzilla.redhat.com/2135411
- https://bugzilla.redhat.com/show_bug.cgi?id=2135411
- https://cert-portal.siemens.com/productcert/html/ssa-398330.html
All 29 references
- https://cert-portal.siemens.com/productcert/html/ssa-892048.html
- https://creativecommons.org/licenses/by/4.0/
- https://curl.se/docs/CVE-2022-32221.html
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32221
- https://errata.almalinux.org/9/ALSA-2023-0333.html
- https://errata.rockylinux.org/RLSA-2023:0333
- https://hackerone.com/reports/1704017
- https://linux.oracle.com/cve/CVE-2022-32221.html
- https://linux.oracle.com/errata/ELSA-2023-0333.html
- https://lists.debian.org/debian-lts-announce/2023/01/msg00028.html
- https://nvd.nist.gov/vuln/detail/CVE-2022-32221
- https://security.gentoo.org/glsa/202212-01
- https://security.netapp.com/advisory/ntap-20230110-0006/
- https://security.netapp.com/advisory/ntap-20230208-0002/
- https://support.apple.com/kb/HT213604
- https://support.apple.com/kb/HT213605
- https://ubuntu.com/security/notices/USN-5702-1
- https://ubuntu.com/security/notices/USN-5702-2
- https://ubuntu.com/security/notices/USN-5823-1
- https://www.cve.org/CVERecord?id=CVE-2022-32221
- https://www.debian.org/security/2023/dsa-5330