CVE-2022-23607: Unsafe handling of user-specified cookies in treq

Published Feb 1, 2022
·
Updated

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 createcookie

jar = CookieJar() jar.addcookie( createcookie( 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).

Other sources

treq is an HTTP library inspired by requests but written on top of Twisted's Agents. Treq's request methods (treq.get, treq.post, etc.) and treq.client.HTTPClient constructor accept cookies as a dictionary. 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. 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. Users are advised to upgrade. For users unable to upgrade Instead of passing a dictionary as the cookies argument, pass a http.cookiejar.CookieJar instance with properly domain- and scheme-scoped cookies in it.

Affected Software

8 affected componentsFixes available
pip/treq<22.1.0
22.1.0
twistedmatrix Treq>=21.1.0<22.1.0
Debian Debian Linux=9.0
debian/python-treq<22.2.0-0.1
22.2.0-0.1
debian/python-treq<22.2.0-0.1
22.2.0-0.1
debian/python-treq<22.2.0-0.1
22.2.0-0.1
debian/python-treq
22.2.0-0.124.9.1-126.7.0-2
alpine/py3-treq<22.1.0-r0
22.1.0-r0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/treq to a version that resolves this vulnerability.

    Fixed in 22.1.0
  2. Upgrade

    Upgrade debian/python-treq to a version that resolves this vulnerability.

    Fixed in 22.2.0-0.1Fixed in 24.9.1-1Fixed in 26.7.0-2
  3. Upgrade

    Upgrade alpine/py3-treq to a version that resolves this vulnerability.

    Fixed in 22.1.0-r0
  4. Upgrade

    Upgrade debian/python-treq to a version that resolves this vulnerability.

    Fixed in 22.2.0-0.1
  5. Upgrade

    Upgrade treq to a version that resolves this vulnerability.

    Fixed in 2021.1.0
  6. Compensating control

    For users unable to upgrade, pass a http.cookiejar.CookieJar instance instead of a dictionary as the cookies argument, with cookies properly scoped to the domain and scheme.

Event History

Feb 1, 2022
Advisory Published
via GitHub·12:43 AM
CVE Published
via MITRE·11:01 AM
Data Sourced
via MITRE·11:01 AM
DescriptionSeverityWeakness
Data Sourced
via OSV·11:15 AM
DescriptionSeverityAffected Software

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

What is CVE-2022-23607?

CVE-2022-23607 is a high severity vulnerability in the treq HTTP library that allows cookies to be sent to every domain instead of a single domain.

2

How does CVE-2022-23607 affect Twistedmatrix Treq?

Twistedmatrix Treq versions between 21.1.0 and 22.1.0 are affected by CVE-2022-23607.

3

How does CVE-2022-23607 affect Debian Debian Linux?

Debian Debian Linux version 9.0 is affected by CVE-2022-23607.

4

What is the severity of CVE-2022-23607?

CVE-2022-23607 has a severity rating of 7.4 (high).

5

How can I fix CVE-2022-23607?

To fix CVE-2022-23607, upgrade Twistedmatrix Treq to a version above 22.1.0 or apply the necessary security patches for Debian Debian Linux 9.0.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203