GitHub Advisoryadvisory · PyPI

GHSA-fhpf-pp6p-55qc Unsafe handling of user-specified cookies in treq

HIGH Published 2022-02-01 Modified 2024-11-13 Official page ↗
Aliases
CVE-2022-23607
Ecosystem
PyPI
Packages
treq
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Weaknesses
CWE-200, CWE-425, CWE-601
Reviewed
2022-01-31

Affected packages

• PyPI treq: < 22.1.0 → fixed in 22.1.0

Description

Impact Treq's request methods (`treq.get`, `treq.post`, `HTTPClient.request`, `HTTPClient.get`, etc.) accept cookies as a dictionary, for example: ```py treq.get('https://example.com/', cookies={'session': '1234'}) ``` Such cookies are not bound to a single domain, and are therefore sent to *every* domain ("supercookies"). This can potentially cause sensitive information to leak upon an HTTP redirect to a different domain., e.g. should `https://example.com` redirect to `http://cloudstorageprovider.com` the latter will receive the cookie `session`. Patches Treq 2021.1.0 and later bind cookies given to request methods (`treq.request`, `treq.get`, `HTTPClient.request`, `HTTPClient.get`, etc.) to the origin of the *url* parameter. Workarounds Instead of passing a dictionary as the *cookies* argument, pass a `http.cookiejar.CookieJar` instance with properly domain- and scheme-scoped cookies in it: ```py from http.cookiejar import CookieJar from requests.cookies import create_cookie jar = CookieJar() jar.add_cookie( create_cookie( name='session', value='1234', domain='example.com', secure=True, ), ) client = HTTPClient(cookies=jar) client.get('https://example.com/') ``` References • Originally reported at huntr.dev • A related issue in the handling of HTTP basic authentication was addressed in Twisted 22.1 (GHSA-92x2-jw7w-xvvx, CVE-2022-21712).

Related

Alias · CVE (1)

  • CVE-2022-23607 treq is an HTTP library inspired by requests but written on top of Twisted's Agents. vulnerability

Weakness · CWE (3)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
  • CWE-425 Direct Request weakness
  • CWE-601 URL Redirection to Untrusted Site weakness

References