curl / Docs / Security Problems / Bad connection reuse due to flawed path name checks

Bad connection reuse due to flawed path name checks

Project curl Security Advisory, July 21st 2021 - Permalink

VULNERABILITY

libcurl keeps previously used connections in a connection pool for subsequent transfers to reuse, if one of them matches the setup.

Due to errors in the logic, the config matching function did not take 'issuer cert' into account and it compared the involved paths case insensitively, which could lead to libcurl reusing wrong connections.

File paths are, or can be, case sensitive on many systems but not all, and can even vary depending on used file systems.

The comparison also didn't include the 'issuer cert' which a transfer can set to qualify how to verify the server certificate.

We are not aware of any exploit of this flaw.

INFO

This flaw has existed in curl since commit 89721ff04af70f in libcurl 7.10.4, released on April 2, 2003.

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2021-22924 to this issue.

CWE-295: Improper Certificate Validation

Severity: Medium

AFFECTED VERSIONS

Also note that libcurl is used by many applications, and not always advertised as such.

THE SOLUTION

The SSL configs are compared appropriately.

A fix for CVE-2021-22924

RECOMMENDATIONS

A - Upgrade curl to version 7.78.0

B - Apply the patch to your local version

TIMELINE

This issue was reported to the curl project on June 11, 2021.

This advisory was posted on July 21, 2021.

CREDITS

This issue was reported by Harry Sintonen. Patched by Daniel Stenberg.

Thanks a lot!