Bug 1206308 - (CVE-2022-43551) VUL-0: CVE-2022-43551: curl: another HSTS bypass via IDN
(CVE-2022-43551)
VUL-0: CVE-2022-43551: curl: another HSTS bypass via IDN
Status: IN_PROGRESS
Classification: Novell Products
Product: SUSE Security Incidents
Classification: Novell Products
Component: Incidents
unspecified
Other Other
: P3 - Medium : Normal
: ---
Assigned To: Security Team bot
Security Team bot
https://smash.suse.de/issue/350247/
CVSSv3.1:SUSE:CVE-2022-43551:6.5:(AV:...
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2022-12-12 08:28 UTC by Thomas Leroy
Modified: 2022-12-21 15:54 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Comment 7 Gabriele Sonnu 2022-12-21 08:51:18 UTC
Public via oss-security:

CVE-2022-43551: Another HSTS bypass via IDN
===========================================

Project curl Security Advisory, December 21 2022 -
[Permalink](https://curl.se/docs/CVE-2022-43551.html)

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](https://github.com/curl/curl/commit/7385610d0c7), which was
shipped enabled by default from [commit
d71ff2b9db566b3f](https://github.com/curl/curl/commit/d71ff2b9db566b3f) in
curl 7.77.0.

This issue is similar to both the previous issues
[CVE-2022-42916](https://curl.se/docs/CVE-2022-42916.html) and
[CVE-2022-30115](https://curl.se/docs/CVE-2022-30115.html).

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.86.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](https://github.com/curl/curl/commit/9e71901634e276dd)

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!
Comment 8 David Anes 2022-12-21 13:53:05 UTC
Everything submitted to Factory:
https://build.opensuse.org/request/show/1044033
Comment 9 Swamp Workflow Management 2022-12-21 14:21:45 UTC
SUSE-SU-2022:4597-1: An update that fixes two vulnerabilities is now available.

Category: security (important)
Bug References: 1206308,1206309
CVE References: CVE-2022-43551,CVE-2022-43552
JIRA References: 
Sources used:
openSUSE Leap Micro 5.3 (src):    curl-7.79.1-150400.5.12.1
openSUSE Leap 15.4 (src):    curl-7.79.1-150400.5.12.1
SUSE Linux Enterprise Module for Basesystem 15-SP4 (src):    curl-7.79.1-150400.5.12.1
SUSE Linux Enterprise Micro 5.3 (src):    curl-7.79.1-150400.5.12.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.