CVE-2022-27782
High · 7.5CVSS
7.5
EPSS
3.1%
Published
Jun 2, 2022
CISA due date
—
Cloudanix analysis
A widely used tool for moving data over secure connections could reuse an old connection even after its security settings were updated, potentially sending information the wrong way.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
libcurl reuses pooled connections even after TLS or SSH configuration changes that should have invalidated the match, bypassing intended security restrictions on connection reuse.
Why it matters to the business
Applications relying on curl for secure transfers may send data over connections that no longer meet updated security requirements, raising the chance of information disclosure or failed authentication in environments with high curl usage.
How an attack unfolds
An attacker supplies requests that cause libcurl to reuse a prior connection despite altered TLS or SSH options between transfers, allowing the mismatched connection to be used and potentially bypassing certificate validation or other security checks.
How to fix it
Upgrade curl to the version containing commit 462196e6b4a47f924293a0e26b8e9c23d37ac26f or later; rebuild dependent applications against the patched library.
How to confirm the fix worked
Confirm the installed curl version includes the referenced commit, then test that changed TLS or SSH options now correctly prevent connection reuse from the pool.
Typical attack path
- Identify applications using libcurl connection pooling
- Issue transfers that alter TLS or SSH settings between requests
- Trigger reuse of a previously pooled connection
- Leverage the bypassed security settings for unauthorized data access or MITM
How to detect it
Review application and libcurl debug logs for connection reuse events that occur after TLS or SSH option changes; look for patterns of mismatched connection use in network traces.
What your security team should do
- Prioritize upgrade of curl across all affected systems given the available public exploit
- Audit code paths that modify TLS or SSH options between transfers
- Enable verbose logging of connection reuse decisions during testing
The record
libcurl would reuse a previously created connection even when a TLS or SSHrelated option had been changed that should have prohibited reuse.libcurl keeps previously used connections in a connection pool for subsequenttransfers to reuse if one of them matches the setup. However, several TLS andSSH settings were left out from the configuration match checks, making themmatch too easily.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | curl | 0 | 7.61.1-22.el8_6.3 |
| AlmaLinux:8 | libcurl | 0 | 7.61.1-22.el8_6.3 |
| AlmaLinux:8 | libcurl-devel | 0 | 7.61.1-22.el8_6.3 |
| AlmaLinux:8 | libcurl-minimal | 0 | 7.61.1-22.el8_6.3 |
| Alpine:v3.13 | curl | 0 | 7.79.1-r2 |
| Alpine:v3.14 | curl | 0 | 7.79.1-r2 |
| Alpine:v3.15 | curl | 0 | 7.80.0-r2 |
| Alpine:v3.16 | curl | 0 | 7.83.1-r0 |
| Alpine:v3.17 | curl | 0 | 7.83.1-r0 |
| Alpine:v3.18 | curl | 0 | 7.83.1-r0 |
| Alpine:v3.19 | curl | 0 | 7.83.1-r0 |
| Alpine:v3.20 | curl | 0 | 7.83.1-r0 |
| Alpine:v3.21 | curl | 0 | 7.83.1-r0 |
| Alpine:v3.22 | curl | 0 | 7.83.1-r0 |
| Debian:10 | curl | 0 | 7.64.0-4+deb10u3 |
| Debian:11 | curl | 0 | 7.74.0-1.3+deb11u2 |
| Debian:12 | curl | 0 | 7.83.1-1 |
| Debian:13 | curl | 0 | 7.83.1-1 |
| Mageia:8 | curl | 0 | 7.74.0-1.6.mga8 |
| Red Hat:enterprise_linux:8::baseos | curl | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | curl-debuginfo | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | curl-debugsource | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | curl-minimal-debuginfo | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | libcurl | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | libcurl-debuginfo | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | libcurl-devel | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | libcurl-minimal | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:8::baseos | libcurl-minimal-debuginfo | 0 | 0:7.61.1-22.el8_6.3 |
| Red Hat:enterprise_linux:9::appstream | curl | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | curl-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | curl-debugsource | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | curl-minimal | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | curl-minimal-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | libcurl | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | libcurl-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | libcurl-devel | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | libcurl-minimal | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::appstream | libcurl-minimal-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | curl | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | curl-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | curl-debugsource | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | curl-minimal | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | curl-minimal-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | libcurl | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | libcurl-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | libcurl-devel | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | libcurl-minimal | 0 | 0:7.76.1-14.el9_0.4 |
| Red Hat:enterprise_linux:9::baseos | libcurl-minimal-debuginfo | 0 | 0:7.76.1-14.el9_0.4 |
| Rocky Linux:8 | curl | 0 | 0:7.61.1-22.el8_6.3 |
| SUSE:Enterprise Storage 6 | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Enterprise Storage 7 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:HPE Helion OpenStack 8 | curl | 0 | 7.37.0-37.76.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-ESPOS | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise Micro 5.1 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise Micro 5.2 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP3 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | curl | 0 | 7.37.0-37.76.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | curl | 0 | 7.37.0-37.76.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | curl | 0 | 7.37.0-37.76.1 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | curl | 0 | 7.60.0-4.38.1 |
| SUSE:Linux Enterprise Server 12 SP5 | curl | 0 | 7.60.0-11.40.2 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise Server 15 SP2-BCL | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise Server 15-LTSS | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | curl | 0 | 7.37.0-37.76.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | curl | 0 | 7.60.0-4.38.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | curl | 0 | 7.60.0-11.40.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | curl | 0 | 7.60.0-150000.33.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | curl | 0 | 7.60.0-11.40.2 |
| SUSE:Manager Proxy 4.1 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Manager Retail Branch Server 4.1 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:Manager Server 4.1 | curl | 0 | 7.66.0-150200.4.33.1 |
| SUSE:OpenStack Cloud 8 | curl | 0 | 7.37.0-37.76.1 |
| SUSE:OpenStack Cloud 9 | curl | 0 | 7.60.0-4.38.1 |
| SUSE:OpenStack Cloud Crowbar 8 | curl | 0 | 7.37.0-37.76.1 |
| SUSE:OpenStack Cloud Crowbar 9 | curl | 0 | 7.60.0-4.38.1 |
| Ubuntu:18.04:LTS | curl | 0 | 7.58.0-2ubuntu3.18 |
| Ubuntu:20.04:LTS | curl | 0 | 7.68.0-1ubuntu2.11 |
| Ubuntu:22.04:LTS | curl | 0 | 7.81.0-1ubuntu1.2 |
| Ubuntu:Pro:14.04:LTS | curl | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | curl | 0 | No fix |
| openSUSE:Leap 15.3 | curl | 0 | 7.66.0-150200.4.33.1 |
| openSUSE:Tumbleweed | curl | 0 | 7.83.1-1.1 |
Related vulnerabilities
- CVE-2023-46218 This flaw allows a malicious HTTP server to set "super cookies" in curl that are then… Also affects curl
- CVE-2023-38546 This flaw allows an attacker to insert cookies at will into a running program using… Also affects curl
- CVE-2023-28322 An information disclosure vulnerability exists in curl <v8.1.0 when doing HTTP(S)… Also affects curl
- CVE-2022-27774 An insufficiently protected credentials vulnerability exists in curl 4.9 to and include… Also affects curl
- CVE-2022-22576 An improper authentication vulnerability exists in curl 7.33.0 to and including 7.82.0… Also affects curl
- CVE-2021-22898 curl 7.7 through 7.76.1 suffers from an information disclosure when the `-t` command line… Also affects curl
- CVE-2022-27781 libcurl provides the `CURLOPT_CERTINFO` option to allow applications torequest details to… Also affects curl
- CVE-2022-27775 An information disclosure vulnerability exists in curl 7.65.0 to 7.82.0 are vulnerable… Also affects curl