Skip to content
Heist/ feed
Back to feed
Critical

Security advisory

Type: advisorySources: OSVCVE: CVE-2022-32221

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2022-32221
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 10:24 UTC · Revision 1

Source evidence

CVE-2022-32221

core-osv · Original source

Published 5 Dec 2022, 00:00 UTC

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.

osv:CVE-2022-32221
Complete source record
{
  "id": "4c85eefcd6fae62d1583fe3cc38f018dcc14ba97f556815e74adac8e260ed99a",
  "url": "https://osv.dev/vulnerability/CVE-2022-32221",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2022-32221",
    "summary": "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.",
    "evidence": "osv:CVE-2022-32221",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2022-32221",
      "aliases": [
        "CURL-CVE-2022-32221",
        "CVE-2022-32221"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/curl/curl",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "cd95ee9f771361acf241629d2fe5507e308082a2"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "7.86.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "curl-7_85_0",
            "curl-7_84_0",
            "curl-7_83_1",
            "curl-7_83_0",
            "curl-7_82_0",
            "curl-7_81_0",
            "curl-7_80_0",
            "curl-7_79_1",
            "curl-7_79_0",
            "curl-7_78_0",
            "curl-7_77_0",
            "curl-7_76_1",
            "curl-7_76_0",
            "curl-7_75_0",
            "curl-7_74_0",
            "curl-7_73_0",
            "curl-7_72_0",
            "curl-7_71_1",
            "curl-7_71_0",
            "curl-7_70_0",
            "curl-7_69_1",
            "curl-7_69_0",
            "curl-7_68_0",
            "curl-7_67_0",
            "curl-7_66_0",
            "curl-7_65_3",
            "curl-7_65_2",
            "curl-7_65_1",
            "curl-7_65_0",
            "curl-7_64_1",
            "curl-7_64_0",
            "curl-7_63_0",
            "curl-7_62_0",
            "curl-7_61_1",
            "curl-7_61_0",
            "curl-7_60_0",
            "curl-7_59_0",
            "curl-7_58_0",
            "curl-7_57_0",
            "curl-7_56_1",
            "curl-7_56_0",
            "curl-7_55_1",
            "curl-7_55_0",
            "curl-7_54_1",
            "curl-7_54_0",
            "curl-7_53_1",
            "curl-7_53_0",
            "curl-7_52_1",
            "curl-7_52_0",
            "curl-7_51_0",
            "curl-7_50_3",
            "curl-7_50_2",
            "curl-7_50_1",
            "curl-7_50_0",
            "curl-7_49_1",
            "curl-7_49_0",
            "curl-7_48_0",
            "curl-7_47_1",
            "curl-7_47_0",
            "curl-7_46_0",
            "curl-7_45_0",
            "curl-7_44_0",
            "curl-7_43_0",
            "curl-7_42_0",
            "curl-7_41_0",
            "curl-7_40_0",
            "curl-7_39_0",
            "curl-7_38_0",
            "curl-7_37_1",
            "curl-7_37_0",
            "curl-7_36_0",
            "curl-7_35_0",
            "curl-7_34_0",
            "curl-7_33_0",
            "curl-7_32_0",
            "curl-7_31_0",
            "curl-7_30_0",
            "curl-7_29_0",
            "curl-7_28_1",
            "curl-7_28_0",
            "curl-7_27_0",
            "curl-7_26_0",
            "curl-7_25_0",
            "curl-7_23_1",
            "curl-7_23_0",
            "curl-7_22_0",
            "curl-7_21_7",
            "curl-7_21_6",
            "curl-7_21_5",
            "curl-7_21_4",
            "curl-7_21_3",
            "curl-7_21_2",
            "curl-7_21_1",
            "curl-7_21_0",
            "curl-7_20_1",
            "curl-7_20_0",
            "curl-7_19_7",
            "curl-7_19_6",
            "curl-7_19_5",
            "curl-7_19_4",
            "curl-7_19_3",
            "curl-7_19_2",
            "curl-7_19_1",
            "curl-7_19_0",
            "curl-7_18_2",
            "curl-7_18_1",
            "curl-7_18_0",
            "curl-7_17_1",
            "curl-7_17_0",
            "curl-7_17_0-preldapfix",
            "curl-7_16_4",
            "curl-7_16_3",
            "curl-7_16_2",
            "curl-7_16_1",
            "curl-7_16_0",
            "curl-7_15_6-prepipeline",
            "curl-7_15_5",
            "curl-7_15_4",
            "curl-7_15_3",
            "curl-7_15_2",
            "curl-7_15_1",
            "curl-7_15_0",
            "curl-7_14_1",
            "curl-7_14_0",
            "curl-7_13_2",
            "curl-7_13_1",
            "before_ftp_statemachine",
            "curl-7_13_0",
            "curl-7_12_3",
            "curl-7_12_2",
            "curl-7_12_1",
            "curl-7_12_0",
            "curl-7_11_2",
            "curl-7_11_1",
            "curl-7_11_0",
            "curl-7_10_8",
            "curl-7_10_7",
            "curl-7_10_6",
            "curl-7_10_5",
            "curl-7_10_4",
            "curl-7_10_3",
            "curl-7_10_2",
            "curl-7_10_1",
            "curl-7_10",
            "curl-7_9_8",
            "curl-7_9_7",
            "curl-7_9_7-pre2",
            "curl-7_9_6",
            "curl-7_9_5",
            "curl-7_9_5-pre4",
            "curl-7_9_5-pre2",
            "curl-7_9_4",
            "curl-7_9_3",
            "curl-7_9_3-pre3",
            "curl-7_9_3-pre2",
            "curl-7_9_3-pre1",
            "curl-7_9_2",
            "curl-7_9_1",
            "curl-7_9",
            "before_urldata_rename",
            "curl-7_8_1",
            "curl-7_8_1-pre3",
            "curl-7_8",
            "curl-7_8-pre2",
            "curl-7_7_3",
            "curl-7_7_2",
            "curl-7_7_1",
            "curl-7_7",
            "curl-7_7-beta5",
            "curl-7_7-beta3",
            "curl-7_7-beta2",
            "curl-7_7-beta1",
            "curl-7_7_alpha2",
            "curl-7_6_1",
            "curl-7_6_1-pre3",
            "curl-7_6_1-pre2",
            "curl-7_6_1-pre1",
            "curl-7_6",
            "curl-7_6-pre4",
            "curl_7_6-pre3",
            "curl-7_5_2",
            "curl-7_5",
            "curl-7_4_1",
            "curl-7_3",
            "curl-7_2",
            "curl-7_1_1",
            "curl-6_5_2",
            "curl-6_5_1",
            "curl-6_5"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-32221.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:27.829440385Z",
      "provider": "osv",
      "references": [
        "https://cert-portal.siemens.com/productcert/html/ssa-398330.html",
        "https://cert-portal.siemens.com/productcert/html/ssa-892048.html",
        "https://hackerone.com/reports/1704017",
        "https://support.apple.com/kb/HT213604",
        "https://support.apple.com/kb/HT213605",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/32xxx/CVE-2022-32221.json",
        "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://www.debian.org/security/2023/dsa-5330",
        "https://lists.debian.org/debian-lts-announce/2023/01/msg00028.html"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-200"
        ],
        "cna_assigner": "hackerone",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "fixed": "7.86.0"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "VersionTextExtraction"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/32xxx/CVE-2022-32221.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2022-32221",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 494477,
  "published_at": "2022-12-05T00:00:00+00:00"
}