{"id":"CVE-2022-23607","aliases":["ALPINE-CVE-2022-23607","DEBIAN-CVE-2022-23607","DLA-2954-1","EUVD-2022-0341","GHSA-fhpf-pp6p-55qc","PYSEC-2022-26","UBUNTU-CVE-2022-23607","openSUSE-SU-2022:10098-1","openSUSE-SU-2024:11806-1","openSUSE-SU-2025:15106-1"],"status":"published","title":"Unsafe handling of user-specified cookies in treq","description":"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.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.01083,"percentile":0.65415,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200","CWE-425","CWE-601"],"published":"2022-02-01T00:43:38Z","modified":"2026-11-03T07:30:19Z","fixes":[{"ecosystem":"PyPI","package":"treq","fixed_in":["22.1.0"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.24","package":"py3-treq","fixed_in":["22.1.0-r0"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"python-treq","fixed_in":["22.2.0-0.1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"python-treq","fixed_in":["22.2.0-0.1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"python-treq","fixed_in":["22.2.0-0.1"],"sources":["osv"]},{"ecosystem":"Debian:9","package":"python-treq","fixed_in":["15.1.0-1+deb9u1"],"sources":["osv"]},{"ecosystem":"SUSE:Package Hub 15 SP3","package":"python-treq","fixed_in":["20.3.0-bp153.2.3.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.3","package":"python-treq","fixed_in":["20.3.0-bp153.2.3.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"python-treq","fixed_in":["22.1.0-1.1","24.9.1-1.4"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.1.0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"py3-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.1.0-r0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.2.0-0.1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.2.0-0.1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.2.0-0.1"}]}]},{"source":"osv","ecosystem":"Debian:9","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"15.1.0-1+deb9u1"}]}],"versions":["15.1.0-1"]},{"source":"osv","ecosystem":"PyPI","package":"treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.1.0"}]}],"versions":["0.1.0","0.2.0","0.2.1","15.0.0","15.1.0","16.12.0","17.3.0","17.3.1","17.7.0","17.8.0","18.6.0","20.3.0","20.3.0rc1","20.4.1","20.9.0","20.9.0rc1","21.1.0","21.5.0"]},{"source":"osv","ecosystem":"PyPI","package":"treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"21.1.0"},{"fixed":"22.1.0"}]}],"versions":["21.1.0","21.5.0"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["15.1.0-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["18.6.0-0.1","18.6.0-0.2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["18.6.0-0.2","22.2.0-0.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["22.2.0-0.1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["24.9.1-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["25.5.0-1","25.5.0-2","26.7.0-1","26.7.0-2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["24.9.1-1","25.5.0-1"]},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP3","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"20.3.0-bp153.2.3.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"20.3.0-bp153.2.3.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.1.0-1.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-treq","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"24.9.1-1.4"}]}]}],"products":[{"vendor":"debian","product":"debian_linux"},{"vendor":"twisted","product":"treq"},{"vendor":"twistedmatrix","product":"treq"}],"references":[{"url":"https://github.com/twisted/treq/security/advisories/GHSA-fhpf-pp6p-55qc","tags":["x_refsource_CONFIRM","x_transferred","Mitigation","Third Party Advisory","advisory","web","report"]},{"url":"https://lists.debian.org/debian-lts-announce/2022/03/msg00025.html","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","article","web"]},{"url":"https://github.com/twisted/treq/commit/1da6022cc880bbcff59321abe02bf8498b89efb2","tags":["web","report"]},{"url":"https://github.com/twisted/treq/releases/tag/release-22.1.0","tags":["web"]},{"url":"https://huntr.dev/bounties/3c9204fc-a3d1-4441-8599-924c5f57e7ae/?token=06d930e37046c914bcb037e85cc227dc7b510b475989fc69837566562ba899277d46b0fb4b1e21cdcb6ddc1b7d9b1ded632cf3a3551ecb89afca16a63b34641284b50479d5195bba2ac09b116f3dd4fad27f54404c2de922c05c8c8b744aec27bb4d4d198cb8b3abf479af0c2d5fbaa10412da7922594ac3eb39","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-23607","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/treq/PYSEC-2022-26.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-fhpf-pp6p-55qc"},{"url":"https://security.alpinelinux.org/vuln/CVE-2022-23607","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/23xxx/CVE-2022-23607.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2022-23607","tags":["advisory"]},{"url":"https://github.com/twisted/treq","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2022-23607","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-23607","tags":["report"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/ZTECPNLPX6QR5JLJ2KQYTBYWNU6ZRUSG/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1195432","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23607","tags":["web"]},{"url":"","tags":["advisory"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/RSHEP4XHC66ONG55FD2QGET2PJFLWIVT/","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2022-23607","title":"Unsafe handling of user-specified cookies in treq","description":"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.","status":"published","published":"2022-02-01T11:01:07Z","modified":"2024-08-03T03:43:46.835Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:34:29.842547Z"}],"euvd":[{"id":"EUVD-2022-0341","description":"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.","status":"published","published":"2022-02-01T11:01:07Z","modified":"2024-08-03T03:43:46Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-03T03:25:51.181739Z"}],"ghsa":[{"id":"GHSA-fhpf-pp6p-55qc","title":"Unsafe handling of user-specified cookies in treq","description":"### Impact\n\nTreq's request methods (`treq.get`, `treq.post`, `HTTPClient.request`, `HTTPClient.get`, etc.) accept cookies as a dictionary, for example:\n\n```py\ntreq.get('https://example.com/', cookies={'session': '1234'})\n```\n\nSuch 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`.\n\n### Patches\n\nTreq 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.\n\n### Workarounds\n\nInstead of passing a dictionary as the *cookies* argument, pass a `http.cookiejar.CookieJar` instance with properly domain- and scheme-scoped cookies in it:\n\n```py\nfrom http.cookiejar import CookieJar\nfrom requests.cookies import create_cookie\n\njar = CookieJar()\njar.add_cookie(\n    create_cookie(\n        name='session',\n        value='1234',\n        domain='example.com',\n        secure=True,\n    ),\n)\nclient = HTTPClient(cookies=jar)\nclient.get('https://example.com/')\n```\n\n### References\n\n* Originally reported at [huntr.dev](https://huntr.dev/bounties/3c9204fc-a3d1-4441-8599-924c5f57e7ae/?token=06d930e37046c914bcb037e85cc227dc7b510b475989fc69837566562ba899277d46b0fb4b1e21cdcb6ddc1b7d9b1ded632cf3a3551ecb89afca16a63b34641284b50479d5195bba2ac09b116f3dd4fad27f54404c2de922c05c8c8b744aec27bb4d4d198cb8b3abf479af0c2d5fbaa10412da7922594ac3eb39)\n* A related issue in the handling of HTTP basic authentication was addressed in Twisted 22.1 ([GHSA-92x2-jw7w-xvvx](https://github.com/twisted/twisted/security/advisories/GHSA-92x2-jw7w-xvvx), CVE-2022-21712).","status":"published","published":"2022-02-01T00:43:38Z","modified":"2024-11-13T23:03:06Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"},{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-200","CWE-425","CWE-601"],"updated_at":"2026-11-02T14:38:18.163845Z"}],"nvd":[{"id":"CVE-2022-23607","description":"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.","status":"published","published":"2022-02-01T11:15:11.557Z","modified":"2026-06-17T04:30:28.133Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":4.3,"vector":"AV:N/AC:M/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-200","CWE-425"],"updated_at":"2026-11-02T14:07:11.52734Z"}],"osv":[{"id":"ALPINE-CVE-2022-23607","description":"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.","status":"published","published":"2022-02-01T11:15:11.557Z","modified":"2026-11-03T07:30:19.206451709Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-03T07:50:38.973973Z"},{"id":"CVE-2022-23607","title":"Unsafe handling of user-specified cookies in treq","description":"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.","status":"published","published":"2022-02-01T11:01:07Z","modified":"2026-10-28T02:30:48.883440364Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T15:44:24.061177Z"},{"id":"DEBIAN-CVE-2022-23607","description":"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.","status":"published","published":"2022-02-01T11:15:11.557Z","modified":"2026-11-03T08:00:41.33837473Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-03T08:25:15.646766Z"},{"id":"GHSA-fhpf-pp6p-55qc","title":"Unsafe handling of user-specified cookies in treq","description":"### Impact\n\nTreq's request methods (`treq.get`, `treq.post`, `HTTPClient.request`, `HTTPClient.get`, etc.) accept cookies as a dictionary, for example:\n\n```py\ntreq.get('https://example.com/', cookies={'session': '1234'})\n```\n\nSuch 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`.\n\n### Patches\n\nTreq 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.\n\n### Workarounds\n\nInstead of passing a dictionary as the *cookies* argument, pass a `http.cookiejar.CookieJar` instance with properly domain- and scheme-scoped cookies in it:\n\n```py\nfrom http.cookiejar import CookieJar\nfrom requests.cookies import create_cookie\n\njar = CookieJar()\njar.add_cookie(\n    create_cookie(\n        name='session',\n        value='1234',\n        domain='example.com',\n        secure=True,\n    ),\n)\nclient = HTTPClient(cookies=jar)\nclient.get('https://example.com/')\n```\n\n### References\n\n* Originally reported at [huntr.dev](https://huntr.dev/bounties/3c9204fc-a3d1-4441-8599-924c5f57e7ae/?token=06d930e37046c914bcb037e85cc227dc7b510b475989fc69837566562ba899277d46b0fb4b1e21cdcb6ddc1b7d9b1ded632cf3a3551ecb89afca16a63b34641284b50479d5195bba2ac09b116f3dd4fad27f54404c2de922c05c8c8b744aec27bb4d4d198cb8b3abf479af0c2d5fbaa10412da7922594ac3eb39)\n* A related issue in the handling of HTTP basic authentication was addressed in Twisted 22.1 ([GHSA-92x2-jw7w-xvvx](https://github.com/twisted/twisted/security/advisories/GHSA-92x2-jw7w-xvvx), CVE-2022-21712).","status":"published","published":"2022-02-01T00:43:38Z","modified":"2024-11-13T23:23:04.346646Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"},{"version":"4.0","score":7.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-200","CWE-425","CWE-601"],"updated_at":"2026-11-02T15:46:46.39441Z"},{"id":"UBUNTU-CVE-2022-23607","description":"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.","status":"published","published":"2022-02-01T11:15:00Z","modified":"2026-10-17T12:56:02.196323122Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T16:53:53.13624Z"},{"id":"DLA-2954-1","title":"python-treq - security update","status":"published","published":"2022-03-18T00:00:00Z","modified":"2026-03-09T01:22:07.683168Z","updated_at":"2026-11-02T15:46:11.189256Z"},{"id":"openSUSE-SU-2022:10098-1","title":"Security update for python-treq","description":"This update for python-treq fixes the following issues:\n\n- Fixed CVE-2022-23607 (boo#1195432) binding cookies to the domain.\n","status":"published","published":"2022-08-24T04:01:23Z","modified":"2026-02-04T03:23:03.787298Z","updated_at":"2026-11-02T16:58:32.653274Z"},{"id":"openSUSE-SU-2024:11806-1","title":"python310-treq-22.1.0-1.1 on GA media","description":"These are all security issues fixed in the python310-treq-22.1.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:59:35.098007Z","updated_at":"2026-11-02T16:58:35.195147Z"},{"id":"openSUSE-SU-2025:15106-1","title":"python311-treq-24.9.1-1.4 on GA media","description":"These are all security issues fixed in the python311-treq-24.9.1-1.4 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2025-05-17T00:00:00Z","modified":"2026-02-04T03:48:04.62954Z","updated_at":"2026-11-02T16:58:37.399567Z"},{"id":"PYSEC-2022-26","description":"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.","status":"published","published":"2022-02-01T11:15:00Z","modified":"2023-11-08T04:08:24.827076Z","updated_at":"2026-11-02T15:52:53.449407Z"}]}}
