{"id":"CVE-2016-6582","aliases":["DEBIAN-CVE-2016-6582","EUVD-2017-0157","GHSA-3m6r-39p3-jq25","UBUNTU-CVE-2016-6582","USN-7394-1"],"status":"published","title":"Doorkeeper is vulnerable to replay attacks","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","severity":{"version":"3.0","score":9.1,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.04814,"percentile":0.92028,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1254","CWE-254"],"published":"2017-01-23T21:00:00Z","modified":"2026-10-20T10:47:57Z","fixes":[{"ecosystem":"RubyGems","package":"doorkeeper","fixed_in":["4.2.0"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"ruby-doorkeeper","fixed_in":["4.2.0-3"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"ruby-doorkeeper","fixed_in":["4.2.0-3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"ruby-doorkeeper","fixed_in":["4.2.0-3"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:16.04:LTS","package":"ruby-doorkeeper","fixed_in":["2.2.1-1ubuntu0.1~esm2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"RubyGems","package":"doorkeeper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.2.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"ruby-doorkeeper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.2.0-3"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"ruby-doorkeeper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.2.0-3"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"ruby-doorkeeper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.2.0-3"}]}]},{"source":"osv","ecosystem":"RubyGems","package":"doorkeeper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.2.0"}]}],"versions":["0.1.0","0.1.1","0.2.0","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.5.0","0.5.0.rc1","0.6.0","0.6.0.rc1","0.6.1","0.6.2","0.6.3","0.6.4","0.6.5","0.6.6","0.6.7","0.7.0","0.7.1","0.7.2","0.7.3","0.7.4","1.0.0","1.0.0.rc1","1.0.0.rc2","1.1.0","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","2.0.0","2.0.0.alpha1","2.0.0.rc2","2.0.0.rc3","2.0.1","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.2.0","2.2.1","2.2.2","3.0.0","3.0.0.rc1","3.0.0.rc2","3.0.1","3.1.0","4.0.0","4.0.0.rc1","4.0.0.rc2","4.0.0.rc3","4.0.0.rc4","4.1.0"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"ruby-doorkeeper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.1-1ubuntu0.1~esm2"}]}],"versions":["2.2.1-1","2.2.1-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"ruby-doorkeeper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.1-1ubuntu0.1~esm2"}]}],"versions":["2.2.1-1","2.2.1-1ubuntu0.1~esm1"],"bundled":2}],"products":[{"vendor":"doorkeeper_project","product":"doorkeeper"}],"references":[{"url":"http://www.securityfocus.com/bid/92551","tags":["vdb-entry","x_refsource_BID","x_transferred","Third Party Advisory","VDB Entry","advisory"]},{"url":"http://packetstormsecurity.com/files/138430/Doorkeeper-4.1.0-Token-Revocation.html","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","VDB Entry","advisory","web"]},{"url":"http://www.securityfocus.com/archive/1/539268/100/0/threaded","tags":["mailing-list","x_refsource_BUGTRAQ","x_transferred","web"]},{"url":"http://seclists.org/fulldisclosure/2016/Aug/105","tags":["mailing-list","x_refsource_FULLDISC","x_transferred","Mailing List","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/doorkeeper-gem/doorkeeper/releases/tag/v4.2.0","tags":["x_refsource_CONFIRM","x_transferred","Issue Tracking","Patch","Release Notes","Third Party Advisory","fix","web"]},{"url":"https://github.com/doorkeeper-gem/doorkeeper/issues/875","tags":["x_refsource_CONFIRM","x_transferred","Issue Tracking","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-6582","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-3m6r-39p3-jq25","tags":["advisory"]},{"url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/doorkeeper/CVE-2016-6582.yml","tags":["web"]},{"url":"https://web.archive.org/web/20170214021758/http://www.securityfocus.com/bid/92551","tags":["web"]},{"url":"https://web.archive.org/web/20201207202519/http://www.securityfocus.com/archive/1/539268/100/0/threaded","tags":["web"]},{"url":"http://www.openwall.com/lists/oss-security/2016/08/19/2","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2016-6582","tags":["advisory"]},{"url":"https://github.com/doorkeeper-gem/doorkeeper","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2016-6582","tags":["report"]},{"url":"https://github.com/doorkeeper-gem/doorkeeper/commit/fb938051777a3c9cb071e96fc66458f8f615bd53","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2016-6582","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-7394-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2018-1000088","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2016-6582","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-01-23T21:00:00Z","modified":"2024-08-06T01:36:28.287Z","updated_at":"2026-11-02T14:33:34.443637Z"}],"euvd":[{"id":"EUVD-2017-0157","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-01-23T21:00:00Z","modified":"2024-08-06T01:36:28Z","updated_at":"2026-11-03T02:22:35.936009Z"}],"ghsa":[{"id":"GHSA-3m6r-39p3-jq25","title":"Doorkeeper is vulnerable to replay attacks","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-10-24T18:33:35Z","modified":"2023-08-25T21:13:59Z","cvss":[{"version":"3.0","score":9.1,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","level":"critical"}],"cwes":["CWE-1254"],"updated_at":"2026-11-02T14:37:00.680009Z"}],"nvd":[{"id":"CVE-2016-6582","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-01-23T21:59:02.11Z","modified":"2026-06-17T00:51:24.373Z","cvss":[{"version":"3.0","score":9.1,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":6.4,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-254"],"updated_at":"2026-11-02T14:03:35.029632Z"}],"osv":[{"id":"CVE-2016-6582","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-01-23T21:59:02.11Z","modified":"2026-10-20T10:47:57.162440993Z","cvss":[{"version":"3.0","score":9.1,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:02.776224Z"},{"id":"DEBIAN-CVE-2016-6582","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-01-23T21:59:02.11Z","modified":"2026-09-22T07:02:04.147521922Z","cvss":[{"version":"3.0","score":9.1,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:27.910042Z"},{"id":"GHSA-3m6r-39p3-jq25","title":"Doorkeeper is vulnerable to replay attacks","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-10-24T18:33:35Z","modified":"2024-02-16T08:07:34.056523Z","cvss":[{"version":"3.0","score":9.1,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","level":"critical"}],"cwes":["CWE-1254"],"updated_at":"2026-11-02T15:46:35.747385Z"},{"id":"UBUNTU-CVE-2016-6582","description":"The Doorkeeper gem before 4.2.0 for Ruby might allow remote attackers to conduct replay attacks or revoke arbitrary tokens by leveraging failure to implement the OAuth 2.0 Token Revocation specification.","status":"published","published":"2017-01-23T21:59:00Z","modified":"2026-02-04T02:13:44.069344Z","cvss":[{"version":"3.0","score":9.1,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:54:12.642042Z"},{"id":"USN-7394-1","title":"ruby-doorkeeper vulnerabilities","description":"Jonathan Clem and Justin Bull discovered that Doorkeeper could allow\narbitrary token revocation and replay attacks. An attacker could possibly\nuse this issue to gain unauthorized access to a system. (CVE-2016-6582)\n\nIt was discovered that Doorkeeper incorrectly handled storing client names.\nAn attacker could possibly use this issue to execute a cross-site\nscripting (XSS) attack. (CVE-2018-1000088)\n","status":"published","published":"2025-03-31T01:29:40Z","modified":"2026-06-25T13:32:30.272211392Z","updated_at":"2026-11-02T16:58:19.988474Z"}]}}
