OESA-2021-1382 (CVE-2021-22947)

Vulnerability from osv_openeuler – Published: 2021-10-15 11:04 – Updated: 2026-08-06 11:04 – Source website
VLAI
Summary
curl security update
Details

cURL is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various protocols.

Security Fix(es):

When curl >= 7.20.0 and <= 7.78.0 connects to an IMAP or POP3 server to retrieve data using STARTTLS to upgrade to TLS security, the server can respond and send back multiple responses at once that curl caches. curl would then upgrade to TLS but not flush the in-queue of cached responses but instead continue using and trustingthe responses it got before the TLS handshake as if they were authenticated.Using this flaw, it allows a Man-In-The-Middle attacker to first inject the fake responses, then pass-through the TLS traffic from the legitimate server and trick curl into sending data back to the user thinking the attacker's injected data comes from the TLS-protected server.(CVE-2021-22947)

A user can tell curl >= 7.20.0 and <= 7.78.0 to require a successful upgrade to TLS when speaking to an IMAP, POP3 or FTP server (--ssl-reqd on the command line orCURLOPT_USE_SSL set to CURLUSESSL_CONTROL or CURLUSESSL_ALL withlibcurl). This requirement could be bypassed if the server would return a properly crafted but perfectly legitimate response.This flaw would then make curl silently continue its operations withoutTLS contrary to the instructions and expectations, exposing possibly sensitive data in clear text over the network.(CVE-2021-22946)

When sending data to an MQTT server, libcurl <= 7.73.0 and 7.78.0 could in some circumstances erroneously keep a pointer to an already freed memory area and both use that again in a subsequent call to send data and also free it again.(CVE-2021-22945)


{
  "affected": [
    {
      "ecosystem_specific": {
        "aarch64": [
          "libcurl-7.71.1-11.oe1.aarch64.rpm",
          "libcurl-devel-7.71.1-11.oe1.aarch64.rpm",
          "curl-7.71.1-11.oe1.aarch64.rpm",
          "curl-debugsource-7.71.1-11.oe1.aarch64.rpm",
          "curl-debuginfo-7.71.1-11.oe1.aarch64.rpm"
        ],
        "noarch": [
          "curl-help-7.71.1-11.oe1.noarch.rpm"
        ],
        "src": [
          "curl-7.71.1-11.oe1.src.rpm"
        ],
        "x86_64": [
          "curl-7.71.1-11.oe1.x86_64.rpm",
          "curl-debuginfo-7.71.1-11.oe1.x86_64.rpm",
          "libcurl-7.71.1-11.oe1.x86_64.rpm",
          "libcurl-devel-7.71.1-11.oe1.x86_64.rpm",
          "curl-debugsource-7.71.1-11.oe1.x86_64.rpm"
        ]
      },
      "package": {
        "ecosystem": "openEuler:20.03-LTS-SP1",
        "name": "curl",
        "purl": "pkg:rpm/openEuler/curl\u0026distro=openEuler-20.03-LTS-SP1"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "7.71.1-11.oe1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "aarch64": [
          "curl-debugsource-7.71.1-11.oe1.aarch64.rpm",
          "curl-debuginfo-7.71.1-11.oe1.aarch64.rpm",
          "libcurl-devel-7.71.1-11.oe1.aarch64.rpm",
          "libcurl-7.71.1-11.oe1.aarch64.rpm",
          "curl-7.71.1-11.oe1.aarch64.rpm"
        ],
        "noarch": [
          "curl-help-7.71.1-11.oe1.noarch.rpm"
        ],
        "src": [
          "curl-7.71.1-11.oe1.src.rpm"
        ],
        "x86_64": [
          "curl-7.71.1-11.oe1.x86_64.rpm",
          "libcurl-7.71.1-11.oe1.x86_64.rpm",
          "libcurl-devel-7.71.1-11.oe1.x86_64.rpm",
          "curl-debuginfo-7.71.1-11.oe1.x86_64.rpm",
          "curl-debugsource-7.71.1-11.oe1.x86_64.rpm"
        ]
      },
      "package": {
        "ecosystem": "openEuler:20.03-LTS-SP2",
        "name": "curl",
        "purl": "pkg:rpm/openEuler/curl\u0026distro=openEuler-20.03-LTS-SP2"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "7.71.1-11.oe1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "database_specific": {
    "severity": "High"
  },
  "details": "cURL is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various protocols.\r\n\r\nSecurity Fix(es):\r\n\r\nWhen curl \u0026gt;= 7.20.0 and \u0026lt;= 7.78.0 connects to an IMAP or POP3 server to retrieve data using STARTTLS to upgrade to TLS security, the server can respond and send back multiple responses at once that curl caches. curl would then upgrade to TLS but not flush the in-queue of cached responses but instead continue using and trustingthe responses it got *before* the TLS handshake as if they were authenticated.Using this flaw, it allows a Man-In-The-Middle attacker to first inject the fake responses, then pass-through the TLS traffic from the legitimate server and trick curl into sending data back to the user thinking the attacker\u0026apos;s injected data comes from the TLS-protected server.(CVE-2021-22947)\r\n\r\nA user can tell curl \u0026gt;= 7.20.0 and \u0026lt;= 7.78.0 to require a successful upgrade to TLS when speaking to an IMAP, POP3 or FTP server (`--ssl-reqd` on the command line or`CURLOPT_USE_SSL` set to `CURLUSESSL_CONTROL` or `CURLUSESSL_ALL` withlibcurl). This requirement could be bypassed if the server would return a properly crafted but perfectly legitimate response.This flaw would then make curl silently continue its operations **withoutTLS** contrary to the instructions and expectations, exposing possibly sensitive data in clear text over the network.(CVE-2021-22946)\r\n\r\nWhen sending data to an MQTT server, libcurl \u0026lt;= 7.73.0 and 7.78.0 could in some circumstances erroneously keep a pointer to an already freed memory area and both use that again in a subsequent call to send data and also free it *again*.(CVE-2021-22945)",
  "id": "OESA-2021-1382",
  "modified": "2026-08-06T11:04:39Z",
  "published": "2021-10-15T11:04:39Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2021-1382"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-22947"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-22946"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-22945"
    }
  ],
  "schema_version": "1.7.2",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "curl security update",
  "upstream": [
    "CVE-2021-22947",
    "CVE-2021-22946",
    "CVE-2021-22945"
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…