# CVE-2021-22947: Security feature bypass in https://github.com/curl/curl

> A Man-In-The-Middle attacker can inject fake IMAP/POP3 responses before TLS handshake, tricking curl into trusting unauthenticated data.

- **Severity:** Medium 5.9 (`CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 29 Sep 2021
- **Updated:** 14 Oct 2026
- **Also known as:** ALPINE-CVE-2021-22947, AZL-6366, CLEANSTART-2026-NW23865, CURL-CVE-2021-22947, DEBIAN-CVE-2021-22947, GHSA-94jh-wwgf-cmmc, JLSEC-2026-1340, UBUNTU-CVE-2021-22947, USN-5079-4

## What is CVE-2021-22947?

CVE-2021-22947 is a medium-severity vulnerability in Apple Macos, published on 29 Sep 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

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.

Weakness: CWE-345 (Insufficient Verification of Data Authenticity), CWE-310

## Which versions are affected by CVE-2021-22947?

It affects 26 products.


Products: Apple Macos, Debian Debian Linux, Fedoraproject Fedora, Haxx Curl, Netapp Cloud Backup, Netapp Clustered Data Ontap, Netapp H300e Firmware, Netapp H300s Firmware, Netapp H410s Firmware, Netapp H500e Firmware, Netapp H500s Firmware, Netapp H700e Firmware, Netapp H700s Firmware, Netapp Solidfire Baseboard Management Controller Firmware, Oracle Commerce Guided Search, Oracle Communications Cloud Native Core Binding Support Function, Oracle Communications Cloud Native Core Console, Oracle Communications Cloud Native Core Network Function Cloud Native Environment, Oracle Communications Cloud Native Core Network Repository Function, Oracle Communications Cloud Native Core Network Slice Selection Function and 6 more.

## How do I fix CVE-2021-22947?

Upgrade to a fixed version.

## Is CVE-2021-22947 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2021-22947 exists.

## Other vulnerabilities in Apple Macos

- [CVE-2026-65400](https://insights.sbomify.com/CVE-2026-65400/): Apple macOS Improper Authentication (critical 9.8, exploited in the wild)
- [CVE-2024-44146](https://insights.sbomify.com/CVE-2024-44146/): Security feature bypass in macOS (critical 10.0)
- [CVE-2024-44148](https://insights.sbomify.com/CVE-2024-44148/): Security feature bypass in macOS (critical 10.0)
- [CVE-2023-38586](https://insights.sbomify.com/CVE-2023-38586/): Security feature bypass in macOS (critical 10.0)
- [CVE-2023-40455](https://insights.sbomify.com/CVE-2023-40455/): Security feature bypass in macOS (critical 10.0)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2021-22947 and fix it if it is affected.

What it is: CVE-2021-22947 is a medium-severity vulnerability in Apple Macos, published on 29 Sep 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2021-22947 exists.

Affected product: Apple Macos. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2021-22947/ (Markdown: https://insights.sbomify.com/CVE-2021-22947/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2021-22947
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2021-22947
- OSV: https://osv.dev/vulnerability/CVE-2021-22947

---
From sbomify Insights: https://insights.sbomify.com/CVE-2021-22947/
Summaries are generated and may contain mistakes; the official description above is the record.
