CVE-2022-27779
cookie for trailing dot TLD
Project curl Security Advisory, May 11 2022 - Permalink
VULNERABILITY
libcurl wrongly allows HTTP cookies to be set for Top Level Domains (TLDs) if the hostname is provided with a trailing dot.
curl can be told to receive and send cookies when communicating using HTTP(S). curl's "cookie engine" can be built with or without Public Suffix List awareness. If PSL support not provided, a more rudimentary check exists to at least prevent cookies from being set on TLDs. This check was broken if the hostname in the URL uses a trailing dot.
This can allow arbitrary sites to set cookies that then would get sent to a different and unrelated site or domain.
INFO
This vulnerability only exists when curl is built without libpsl. Without this PSL support built-in, curl is also destined to possibly leak cookies cross sites simply due to how public suffixes work.
This flaw is similar to CVE-2014-3620, although in 2014 curl did not have PSL support.
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2022-27779 to this issue.
CWE-201: Information Exposure Through Sent Data
Severity: Medium
AFFECTED VERSIONS
- Affected versions: curl 7.82.0 to and including curl 7.83.0
- Not affected versions: curl < 7.82.0 and curl >= 7.83.1
- Introduced-in: https://github.com/curl/curl/commit/b27ad8e1d3e68e
libcurl is used by many applications, but not always advertised as such!
SOLUTION
RECOMMENDATIONS
A - Upgrade curl to version 7.83.1
B - Apply the patch to your local version
C - Build libcurl with libpsl support
D - Do not use cookies
TIMELINE
This issue was reported to the curl project on April 28, 2022. We contacted distros@openwall on May 5.
libcurl 7.83.1 was released on May 11 2022, coordinated with the publication of this advisory.
CREDITS
- Reported-by: Axel Chong
- Patched-by: Daniel Stenberg
Thanks a lot!