
=====================================================================

                               CERT-Renater

                    Note d'Information No. 2022/VULN479

_____________________________________________________________________

DATE                : 21/12/2022

HARDWARE PLATFORM(S): /

OPERATING SYSTEM(S): Systems running curl versions prior to 7.87.0
                                  and after 7.16.0.

=====================================================================
https://curl.se/docs/CVE-2022-43551.html
https://curl.se/docs/CVE-2022-43552.html
_____________________________________________________________________

CVE-2022-43551: Another HSTS bypass via IDN

Project curl Security Advisory, December 21 2022 -


VULNERABILITY

curl's HSTS check could be bypassed to trick it to keep using HTTP.

Using its HSTS support, curl can be instructed to use HTTPS instead
of using an insecure clear-text HTTP step even when HTTP is provided
in the URL.

The HSTS mechanism could be bypassed if the host name in the given
URL first uses IDN characters that get replaced to ASCII counterparts
as part of the IDN conversion. Like using the character UTF-8 U+3002
(IDEOGRAPHIC FULL STOP) instead of the common ASCII full stop (U+002E).
Then in a subsequent request, it does not detect the HSTS state and
makes a clear text transfer. Because it would store the info IDN
encoded but look for it IDN decoded.

Reproducible like this:

curl --hsts hsts.txt https://curl%E3%80%82se
curl --hsts hsts.txt http://curl%E3%80%82se

We are not aware of any exploit of this flaw.


INFO

This flaw was introduced in commit 7385610d0c7, which was shipped enabled
by default from commit d71ff2b9db566b3f in curl 7.77.0.

This issue is similar to both the previous issues CVE-2022-42916 and
CVE-2022-30115.

This became a new separate vulnerability simply because we did not
properly test and research related side-issues while we worked on
fixing the previous issues.

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

CWE-319: Cleartext Transmission of Sensitive Information

Severity: Medium


AFFECTED VERSIONS

     Affected versions: curl 7.77.0 to and including 7.86.0
     Not affected versions: curl < 7.77.0 and curl >= 7.87.0

curl built without IDN support is not vulnerable.

libcurl is used by many applications, but not always advertised as
such!


THE SOLUTION

A fix for CVE-2022-43551


RECOMMENDATIONS

A - Upgrade curl to version 7.87.0

B - Apply the patch to your local version

C - Stick to always using HTTPS:// in URLs


TIMELINE

This issue was reported to the curl project on October 29, 2022. We
contacted distros@openwall on December 12, 2022.

curl 7.87.0 was released on December 21 2022, coordinated with the
publication of this advisory.


CREDITS

     Reported-by: Hiroki Kurosawa
     Patched-by: Daniel Stenberg

Thanks a lot!

_____________________________________________________________________

CVE-2022-43552: HTTP Proxy deny use-after-free

Project curl Security Advisory, December 21 2022 -


VULNERABILITY

curl can be asked to tunnel virtually all protocols it supports
through an HTTP proxy. HTTP proxies can (and often do) deny such
tunnel operations using an appropriate HTTP error response code.

When getting denied to tunnel the specific protocols SMB or TELNET,
curl would use a heap-allocated struct after it had been freed, in
its transfer shutdown code path.

We are not aware of any exploit of this flaw.
INFO

This flaw was introduced for TELNET in commit b7eeb6e67fca68 in
September 7, 2006. The SMB part was introduced in 2014 with commit
aec2e865f06669.

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

CWE-416: Use After Free

Severity: Low


AFFECTED VERSIONS

     Affected versions: curl 7.16.0 to and including 7.86.0
     Not affected versions: curl < 7.16.0 and curl >= 7.87.0

libcurl is used by many applications, but not always advertised
as such!


THE SOLUTION

A fix for CVE-2022-43552


RECOMMENDATIONS

A - Upgrade curl to version 7.87.0

B - Apply the patch to your local version

C - Avoid using SMB and TELNET or disable HTTP proxy use


TIMELINE

This issue was reported to the curl project on November 7, 2022.
We contacted distros@openwall on December 12, 2022.

curl 7.87.0 was released on December 21 2022, coordinated with
the publication of this advisory.


CREDITS

     Reported-by: Trail of Bits
     Patched-by: Daniel Stenberg

Thanks a lot!


=========================================================
+ CERT-RENATER        |    tel : 01-53-94-20-44         +
+ 23/25 Rue Daviel    |    fax : 01-53-94-20-41         +
+ 75013 Paris         |   email:cert@support.renater.fr +
=========================================================


