CVE-2022-27782
TLS and SSH connection too eager reuse
Project curl Security Advisory, May 11 2022 - Permalink
VULNERABILITY
libcurl would reuse a previously created connection even when a TLS or SSH related option had been changed that should have prohibited reuse.
libcurl keeps previously used connections in a connection pool for subsequent transfers to reuse if one of them matches the setup. However, several TLS and SSH settings were left out from the configuration match checks, making them match too easily.
INFO
Here are the list of options that were not considered in the check, so curl would reuse a connection even if the subsequent transfer would have changed one or more of these options.
TLS options
CURLOPT_SSL_OPTIONS
(since 7.25.0)CURLOPT_CRLFILE
(since 7.19.0)CURLOPT_TLSAUTH_USERNAME
(since 7.21.4)CURLOPT_TLSAUTH_PASSWORD
(since 7.21.4)CURLOPT_PROXY_SSL_OPTIONS
(since 7.52.0)CURLOPT_PROXY_CRLFILE
(since 7.52.0)CURLOPT_PROXY_TLSAUTH_USERNAME
(since 7.52.0)CURLOPT_PROXY_TLSAUTH_PASSWORD
(since 7.52.0)
SSH options
CURLOPT_SSH_PUBLIC_KEYFILE
(since 7.16.1)CURLOPT_SSH_PRIVATE_KEYFILE
(since 7.16.1)
This flaw was initially introduced in curl 7.16.1 and has been widened several times since then. See table above for details
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2022-27782 to this issue.
CWE-305: Authentication Bypass by Primary Weakness
Severity: Medium
AFFECTED VERSIONS
- Affected versions: curl 7.16.1 to and including 7.83.0
- Not affected versions: curl < 7.16.1 and curl >= 7.83.1
- Introduced-in: https://github.com/curl/curl/commit/2147284cad
libcurl is used by many applications, but not always advertised as such!
SOLUTION
The two patches for CVE-2022-27782: TLS-fix and SSH-fix
RECOMMENDATIONS
A - Upgrade curl to version 7.83.1
B - Apply the patch to your local version
TIMELINE
This issue was reported to the curl project on May 1, 2022. We contacted distros@openwall on May 5.
libcurl 7.83.1 was released on May 11 2022, coordinated with the publication of this advisory.
CREDITS
- Reported-by: Harry Sintonen
- Patched-by: Daniel Stenberg
Thanks a lot!