CURL-CVE-2022-43551

Source
https://curl.se/docs/CVE-2022-43551.html
Import Source
https://curl.se/docs/CURL-CVE-2022-43551.json
JSON Data
https://api.osv.dev/v1/vulns/CURL-CVE-2022-43551
Aliases
Published
2022-12-21T08:00:00Z
Modified
2024-06-07T13:53:51Z
Summary
Another HSTS bypass via IDN
Details

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 hostname 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
References
Credits
    • Hiroki Kurosawa - FINDER
    • Daniel Stenberg - REMEDIATION_DEVELOPER

Affected packages

Git / github.com/curl/curl.git

Affected ranges

Type
SEMVER
Events
Introduced
7.77.0
Fixed
7.87.0
Type
GIT
Repo
https://github.com/curl/curl.git
Events

Affected versions

7.*

7.77.0
7.78.0
7.79.0
7.79.1
7.80.0
7.81.0
7.82.0
7.83.0
7.83.1
7.84.0
7.85.0
7.86.0