{"api_version":"1","generated_at":"2026-04-23T11:33:59+00:00","cve":"CVE-2015-7225","urls":{"html":"https://cve.report/CVE-2015-7225","api":"https://cve.report/api/cve/CVE-2015-7225.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2015-7225","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2015-7225"},"summary":{"title":"CVE-2015-7225","description":"Tinfoil Devise-two-factor before 2.0.0 does not strictly follow section 5.2 of RFC 6238 and does not \"burn\" a successfully validated one-time password (aka OTP), which allows remote or physically proximate attackers with a target user's login credentials to log in as said user by obtaining the OTP through performing a man-in-the-middle attack between the provider and verifier, or shoulder surfing, and replaying the OTP in the current time-step.","state":"PUBLIC","assigner":"cve@mitre.org","published_at":"2017-09-06 21:29:00","updated_at":"2017-09-21 18:57:00"},"problem_types":["CWE-254"],"metrics":[],"references":[{"url":"http://www.openwall.com/lists/oss-security/2015/09/17/2","name":"[oss-security] 20150917 Re: CVE Request: TOTP Replay Attack in Ruby library","refsource":"MLIST","tags":["Mailing List","VDB Entry"],"title":"oss-security - Re: CVE Request: TOTP Replay Attack in Ruby library \"devise-two-factor\"","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/tinfoil/devise-two-factor/issues/45#issuecomment-139335608","name":"https://github.com/tinfoil/devise-two-factor/issues/45#issuecomment-139335608","refsource":"CONFIRM","tags":["Third Party Advisory"],"title":"Security Bug · Issue #45 · tinfoil/devise-two-factor · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798466","name":"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798466","refsource":"MISC","tags":["Mailing List","Third Party Advisory"],"title":"#798466 - ruby-devise-two-factor: CVE-2015-7225: TOTP Replay Attack - Debian Bug report logs","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"http://www.securityfocus.com/bid/76789","name":"76789","refsource":"BID","tags":["Third Party Advisory","VDB Entry"],"title":"Tinfoil Devise-two-factor CVE-2015-7225 Security Bypass Vulnerability","mime":"text/html","httpstatus":"200","archivestatus":"0"},{"url":"http://www.openwall.com/lists/oss-security/2015/06/20/4","name":"[oss-sercurity] 20150620 CVE Request: MITM & Shoulder-surfing vuln in Ruby OTP/HOTP/TOTP library \"ROPT\"","refsource":"MLIST","tags":["Mailing List","VDB Entry"],"title":"oss-security - CVE Request: MITM & Shoulder-surfing vuln in Ruby OTP/HOTP/TOTP library \"ROPT\"","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/tinfoil/devise-two-factor/blob/master/UPGRADING.md","name":"https://github.com/tinfoil/devise-two-factor/blob/master/UPGRADING.md","refsource":"CONFIRM","tags":["Third Party Advisory"],"title":"devise-two-factor/UPGRADING.md at master · tinfoil/devise-two-factor · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2015-7225","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2015-7225","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2015","cve_id":"7225","vulnerable":"1","versionEndIncluding":"1.1.0","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"tinfoilsecurity","cpe5":"devise-two-factor","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","ID":"CVE-2015-7225","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"n/a","version":{"version_data":[{"version_value":"n/a"}]}}]},"vendor_name":"n/a"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"Tinfoil Devise-two-factor before 2.0.0 does not strictly follow section 5.2 of RFC 6238 and does not \"burn\" a successfully validated one-time password (aka OTP), which allows remote or physically proximate attackers with a target user's login credentials to log in as said user by obtaining the OTP through performing a man-in-the-middle attack between the provider and verifier, or shoulder surfing, and replaying the OTP in the current time-step."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"name":"https://github.com/tinfoil/devise-two-factor/blob/master/UPGRADING.md","refsource":"CONFIRM","url":"https://github.com/tinfoil/devise-two-factor/blob/master/UPGRADING.md"},{"name":"[oss-security] 20150917 Re: CVE Request: TOTP Replay Attack in Ruby library","refsource":"MLIST","url":"http://www.openwall.com/lists/oss-security/2015/09/17/2"},{"name":"[oss-sercurity] 20150620 CVE Request: MITM & Shoulder-surfing vuln in Ruby OTP/HOTP/TOTP library \"ROPT\"","refsource":"MLIST","url":"http://www.openwall.com/lists/oss-security/2015/06/20/4"},{"name":"76789","refsource":"BID","url":"http://www.securityfocus.com/bid/76789"},{"name":"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798466","refsource":"MISC","url":"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798466"},{"name":"https://github.com/tinfoil/devise-two-factor/issues/45#issuecomment-139335608","refsource":"CONFIRM","url":"https://github.com/tinfoil/devise-two-factor/issues/45#issuecomment-139335608"}]}},"nvd":{"publishedDate":"2017-09-06 21:29:00","lastModifiedDate":"2017-09-21 18:57:00","problem_types":["CWE-254"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.0","vectorString":"CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":5.3,"baseSeverity":"MEDIUM"},"exploitabilityScore":1.6,"impactScore":3.6},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:M/Au:S/C:P/I:N/A:N","accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"SINGLE","confidentialityImpact":"PARTIAL","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":3.5},"severity":"LOW","exploitabilityScore":6.8,"impactScore":2.9,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:tinfoilsecurity:devise-two-factor:*:*:*:*:*:*:*:*","versionEndIncluding":"1.1.0","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2015","CveId":"7225","Ordinal":"84230","Title":"CVE-2015-7225","CVE":"CVE-2015-7225","Year":"2015"},"notes":[{"CveYear":"2015","CveId":"7225","Ordinal":"1","NoteData":"Tinfoil Devise-two-factor before 2.0.0 does not strictly follow section 5.2 of RFC 6238 and does not \"burn\" a successfully validated one-time password (aka OTP), which allows remote or physically proximate attackers with a target user's login credentials to log in as said user by obtaining the OTP through performing a man-in-the-middle attack between the provider and verifier, or shoulder surfing, and replaying the OTP in the current time-step.","Type":"Description","Title":null},{"CveYear":"2015","CveId":"7225","Ordinal":"2","NoteData":"2017-09-06","Type":"Other","Title":"Published"},{"CveYear":"2015","CveId":"7225","Ordinal":"3","NoteData":"2017-09-06","Type":"Other","Title":"Modified"}]}}}