[ASA-202107-62] lib32-libcurl-compat: multiple issues

2021-07-21T00:00:00
ID ASA-202107-62
Type archlinux
Reporter ArchLinux
Modified 2021-07-21T00:00:00

Description

Arch Linux Security Advisory ASA-202107-62

Severity: Medium Date : 2021-07-21 CVE-ID : CVE-2021-22924 CVE-2021-22925 Package : lib32-libcurl-compat Type : multiple issues Remote : Yes Link : https://security.archlinux.org/AVG-2197

Summary

The package lib32-libcurl-compat before version 7.78.0-1 is vulnerable to multiple issues including information disclosure and insufficient validation.

Resolution

Upgrade to 7.78.0-1.

pacman -Syu "lib32-libcurl-compat>=7.78.0-1"

The problems have been fixed upstream in version 7.78.0.

Workaround

CVE-2021-22925 can be mitigated by avoiding to use CURLOPT_TELNETOPTIONS. No known workaround exists for CVE-2021-22924.

Description

  • CVE-2021-22924 (insufficient validation)

A security issue has been found in curl before version 7.78.0. 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.

  • CVE-2021-22925 (information disclosure)

A security issue has been found in curl before version 7.78.0. curl supports the -t command line option, known as CURLOPT_TELNETOPTIONS in libcurl. This rarely used option is used to send variable=content pairs to TELNET servers. Due to flaw in the option parser for sending NEW_ENV variables, libcurl before version 7.78.0 could be made to pass on uninitialized data from a stack based buffer to the server. Therefore potentially revealing sensitive internal information to the server using a clear-text network protocol. This could happen because curl did not call and use sscanf() correctly when parsing the string provided by the application.

The previous curl security vulnerability CVE-2021-22898 is almost identical to this one but the fix was insufficient so this security vulnerability remained.

Impact

libcurl could disclose potentially sensitive memory contents to a remote server when an uncommon option for TELNET servers is used. Additionally, libcurl did not sufficiently verify the 'issuer cert' when reusing connections.

References

https://curl.se/docs/CVE-2021-22924.html https://github.com/curl/curl/commit/5ea3145850ebff1dc2b13d17440300a01ca38161 https://curl.se/docs/CVE-2021-22925.html https://github.com/curl/curl/commit/894f6ec730597eb243618d33cc84d71add8d6a8a https://security.archlinux.org/CVE-2021-22924 https://security.archlinux.org/CVE-2021-22925