{"id":"CVE-2017-0906","aliases":["EUVD-2017-0111","GHSA-38rv-5jqc-m2cv","PYSEC-2017-68"],"status":"published","title":"Recurly vulnerable to SSRF","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the \"Resource.get\" method that could result in compromise of API keys or other critical resources.","severity":{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-07","score":0.02616,"percentile":0.85532,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-918"],"published":"2017-11-13T17:00:00Z","modified":"2026-10-20T10:48:07Z","fixes":[{"ecosystem":"PyPI","package":"recurly","fixed_in":["2.6.2","2.5.1","2.4.5","2.3.1","2.2.22","2.1.16","2.0.5"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.6.0"},{"fixed":"2.6.2"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"last_affected":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.5"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"last_affected":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"fixed":"2.2.22"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.16"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.5"}]}]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.6.0"},{"fixed":"2.6.2"}]}],"versions":["2.6.0","2.6.1"]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.5"}]}],"versions":["2.4.0","2.4.1","2.4.2","2.4.3","2.4.4"]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"fixed":"2.2.22"}]}],"versions":["2.2.0","2.2.1","2.2.10","2.2.11","2.2.12","2.2.13","2.2.14","2.2.15","2.2.16","2.2.17","2.2.18","2.2.19","2.2.2","2.2.20","2.2.21","2.2.3","2.2.4","2.2.6","2.2.7","2.2.8","2.2.9"]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.16"}]}],"versions":["2.1.0","2.1.1","2.1.10","2.1.11","2.1.12","2.1.13","2.1.14","2.1.15","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.1.9"]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.5"}]}],"versions":["2.0.0","2.0.2","2.0.3","2.0.4"]},{"source":"osv","ecosystem":"PyPI","package":"recurly","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"049c74699ce93cf126feff06d632ea63fba36742"}]},{"type":"ECOSYSTEM","events":[{"introduced":"2.0"},{"fixed":"2.0.5"},{"introduced":"2.1"},{"fixed":"2.1.16"},{"introduced":"2.2"},{"fixed":"2.2.22"},{"introduced":"2.3"},{"fixed":"2.3.1"},{"introduced":"2.4"},{"fixed":"2.4.5"},{"introduced":"2.5"},{"fixed":"2.5.1"},{"introduced":"2.6"},{"fixed":"2.6.2"}]}],"versions":["2.0.0","2.0.2","2.0.3","2.0.4","2.1.0","2.1.1","2.1.10","2.1.11","2.1.12","2.1.13","2.1.14","2.1.15","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.1.9","2.2.0","2.2.1","2.2.10","2.2.11","2.2.12","2.2.13","2.2.14","2.2.15","2.2.16","2.2.17","2.2.18","2.2.19","2.2.2","2.2.20","2.2.21","2.2.3","2.2.4","2.2.6","2.2.7","2.2.8","2.2.9","2.3.0","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.5.0","2.6.0","2.6.1"]}],"products":[{"vendor":"recurly","product":"recurly python module"},{"vendor":"recurly","product":"recurly_client_python"}],"references":[{"url":"https://hackerone.com/reports/288635","tags":["x_refsource_MISC","x_transferred","Permissions Required","report","web"]},{"url":"https://github.com/recurly/recurly-client-python/commit/049c74699ce93cf126feff06d632ea63fba36742","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://dev.recurly.com/page/python-updates","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-0906","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-38rv-5jqc-m2cv","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/recurly/PYSEC-2017-68.yaml","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2017-0906","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the \"Resource.get\" method that could result in compromise of API keys or other critical resources.","status":"published","published":"2017-11-13T17:00:00Z","modified":"2024-09-17T00:50:41.168Z","cwes":["CWE-918"],"updated_at":"2026-11-02T14:33:22.699876Z"}],"euvd":[{"id":"EUVD-2017-0111","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the \"Resource.get\" method that could result in compromise of API keys or other critical resources.","status":"published","published":"2017-11-13T17:00:00Z","modified":"2024-09-17T00:50:41Z","updated_at":"2026-11-03T00:28:55.3353Z"}],"ghsa":[{"id":"GHSA-38rv-5jqc-m2cv","title":"Recurly vulnerable to SSRF","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the `Resource.get` method that could result in compromise of API keys or other critical resources.","status":"published","published":"2019-01-04T17:48:09Z","modified":"2024-10-26T18:40:02Z","cvss":[{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"},{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T14:38:13.90937Z"}],"nvd":[{"id":"CVE-2017-0906","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the \"Resource.get\" method that could result in compromise of API keys or other critical resources.","status":"published","published":"2017-11-13T17:29:00.457Z","modified":"2026-06-17T00:58:30.33Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T14:04:08.635428Z"}],"osv":[{"id":"CVE-2017-0906","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the \"Resource.get\" method that could result in compromise of API keys or other critical resources.","status":"published","published":"2017-11-13T17:29:00.457Z","modified":"2026-10-20T10:48:07.250992131Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:03.472693Z"},{"id":"GHSA-38rv-5jqc-m2cv","title":"Recurly vulnerable to SSRF","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the `Resource.get` method that could result in compromise of API keys or other critical resources.","status":"published","published":"2019-01-04T17:48:09Z","modified":"2024-10-26T18:50:44.966235Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T15:46:35.406455Z"},{"id":"PYSEC-2017-68","description":"The Recurly Client Python Library before 2.0.5, 2.1.16, 2.2.22, 2.3.1, 2.4.5, 2.5.1, 2.6.2 is vulnerable to a Server-Side Request Forgery vulnerability in the \"Resource.get\" method that could result in compromise of API keys or other critical resources.","status":"published","published":"2017-11-13T17:29:00Z","modified":"2023-11-08T03:58:40.982643Z","updated_at":"2026-11-02T15:52:51.645172Z"}]}}
