cookie for trailing dot TLD
Project curl Security Advisory, May 11 2022 - Permalink
libcurl wrongly allows HTTP cookies to be set for Top Level Domains (TLDs) if the host name 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 host name 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.
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
- 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!
A - Upgrade curl to version 7.83.1
B - Apply the patch to your local version
C - Build libcurl with libpsl support
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.
- Reported-by: Axel Chong
- Patched-by: Daniel Stenberg
Thanks a lot!