gsd-2015-7225
Vulnerability from gsd
Modified
2015-09-17 00:00
Details
A OTP replay vulnerability in devise-two-factor 1.1.0 and earlier allows local
attackers to shoulder-surf a user's TOTP verification code and use it to
login after the user has authenticated.
By not "burning" a previously used TOTP, devise-two-factor allows a narrow
window of opportunity (aka the timestep period) where an attacker can re-use a
verification code.
Should an attacker possess a given user's authentication
credentials, this flaw effectively defeats two-factor authentication for the
duration of the timestep.
Aliases
Aliases
{
"GSD": {
"alias": "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\u0027s 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.",
"id": "GSD-2015-7225"
},
"gsd": {
"metadata": {
"exploitCode": "unknown",
"remediation": "unknown",
"reportConfidence": "confirmed",
"type": "vulnerability"
},
"osvSchema": {
"affected": [
{
"package": {
"ecosystem": "RubyGems",
"name": "devise-two-factor",
"purl": "pkg:gem/devise-two-factor"
}
}
],
"aliases": [
"CVE-2015-7225",
"GHSA-x489-jjwm-52g7"
],
"details": "A OTP replay vulnerability in devise-two-factor 1.1.0 and earlier allows local\nattackers to shoulder-surf a user\u0027s TOTP verification code and use it to\nlogin after the user has authenticated.\n\nBy not \"burning\" a previously used TOTP, devise-two-factor allows a narrow\nwindow of opportunity (aka the timestep period) where an attacker can re-use a\nverification code.\n\nShould an attacker possess a given user\u0027s authentication\ncredentials, this flaw effectively defeats two-factor authentication for the\nduration of the timestep.\n",
"id": "GSD-2015-7225",
"modified": "2015-09-17T00:00:00.000Z",
"published": "2015-09-17T00:00:00.000Z",
"references": [
{
"type": "WEB",
"url": "http://www.openwall.com/lists/oss-security/2015/09/06/2"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": 5.3,
"type": "CVSS_V3"
}
],
"summary": "devise-two-factor 1.1.0 and earlier vulnerable to replay attacks"
}
},
"namespaces": {
"cve.org": {
"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\u0027s 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 \u0026 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"
}
]
}
},
"github.com/rubysec/ruby-advisory-db": {
"cve": "2015-7225",
"cvss_v3": 5.3,
"date": "2015-09-17",
"description": "A OTP replay vulnerability in devise-two-factor 1.1.0 and earlier allows local\nattackers to shoulder-surf a user\u0027s TOTP verification code and use it to\nlogin after the user has authenticated.\n\nBy not \"burning\" a previously used TOTP, devise-two-factor allows a narrow\nwindow of opportunity (aka the timestep period) where an attacker can re-use a\nverification code.\n\nShould an attacker possess a given user\u0027s authentication\ncredentials, this flaw effectively defeats two-factor authentication for the\nduration of the timestep.\n",
"gem": "devise-two-factor",
"ghsa": "x489-jjwm-52g7",
"patched_versions": [
"\u003e= 2.0.0"
],
"title": "devise-two-factor 1.1.0 and earlier vulnerable to replay attacks",
"url": "http://www.openwall.com/lists/oss-security/2015/09/06/2"
},
"gitlab.com": {
"advisories": [
{
"affected_range": "\u003c2.0.0",
"affected_versions": "All versions before 2.0.0",
"credit": "Justin Bull (https://github.com/f3ndot)",
"cvss_v2": "AV:N/AC:M/Au:S/C:P/I:N/A:N",
"cvss_v3": "CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N",
"cwe_ids": [
"CWE-1035",
"CWE-254",
"CWE-937"
],
"date": "2017-09-21",
"description": "In order to be fully RFC compliant for TOTPs, no valid OTP may be used more than once for a given timestep. ",
"fixed_versions": [
"2.0.0"
],
"identifier": "CVE-2015-7225",
"identifiers": [
"CVE-2015-7225"
],
"not_impacted": "All versions starting from 2.0.0",
"package_slug": "gem/devise-two-factor",
"pubdate": "2017-09-06",
"solution": "Upgrade to version 2.0.0 or above.",
"title": "\"shoulder-surfing\" vulnerability",
"urls": [
"https://github.com/tinfoil/devise-two-factor/blob/master/UPGRADING.md",
"https://github.com/tinfoil/devise-two-factor/issues/30",
"https://github.com/tinfoil/devise-two-factor/pull/43"
],
"uuid": "c46043bf-fcd2-438e-9338-c84c214e0447"
}
]
},
"nvd.nist.gov": {
"configurations": {
"CVE_data_version": "4.0",
"nodes": [
{
"children": [],
"cpe_match": [
{
"cpe23Uri": "cpe:2.3:a:tinfoilsecurity:devise-two-factor:*:*:*:*:*:*:*:*",
"cpe_name": [],
"versionEndIncluding": "1.1.0",
"vulnerable": true
}
],
"operator": "OR"
}
]
},
"cve": {
"CVE_data_meta": {
"ASSIGNER": "cve@mitre.org",
"ID": "CVE-2015-7225"
},
"data_format": "MITRE",
"data_type": "CVE",
"data_version": "4.0",
"description": {
"description_data": [
{
"lang": "en",
"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\u0027s 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": "en",
"value": "CWE-254"
}
]
}
]
},
"references": {
"reference_data": [
{
"name": "https://github.com/tinfoil/devise-two-factor/issues/45#issuecomment-139335608",
"refsource": "CONFIRM",
"tags": [
"Third Party Advisory"
],
"url": "https://github.com/tinfoil/devise-two-factor/issues/45#issuecomment-139335608"
},
{
"name": "https://github.com/tinfoil/devise-two-factor/blob/master/UPGRADING.md",
"refsource": "CONFIRM",
"tags": [
"Third Party Advisory"
],
"url": "https://github.com/tinfoil/devise-two-factor/blob/master/UPGRADING.md"
},
{
"name": "https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798466",
"refsource": "MISC",
"tags": [
"Mailing List",
"Third Party Advisory"
],
"url": "https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798466"
},
{
"name": "76789",
"refsource": "BID",
"tags": [
"Third Party Advisory",
"VDB Entry"
],
"url": "http://www.securityfocus.com/bid/76789"
},
{
"name": "[oss-security] 20150917 Re: CVE Request: TOTP Replay Attack in Ruby library",
"refsource": "MLIST",
"tags": [
"Mailing List",
"VDB Entry"
],
"url": "http://www.openwall.com/lists/oss-security/2015/09/17/2"
},
{
"name": "[oss-sercurity] 20150620 CVE Request: MITM \u0026 Shoulder-surfing vuln in Ruby OTP/HOTP/TOTP library \"ROPT\"",
"refsource": "MLIST",
"tags": [
"Mailing List",
"VDB Entry"
],
"url": "http://www.openwall.com/lists/oss-security/2015/06/20/4"
}
]
}
},
"impact": {
"baseMetricV2": {
"cvssV2": {
"accessComplexity": "MEDIUM",
"accessVector": "NETWORK",
"authentication": "SINGLE",
"availabilityImpact": "NONE",
"baseScore": 3.5,
"confidentialityImpact": "PARTIAL",
"integrityImpact": "NONE",
"vectorString": "AV:N/AC:M/Au:S/C:P/I:N/A:N",
"version": "2.0"
},
"exploitabilityScore": 6.8,
"impactScore": 2.9,
"obtainAllPrivilege": false,
"obtainOtherPrivilege": false,
"obtainUserPrivilege": false,
"severity": "LOW",
"userInteractionRequired": false
},
"baseMetricV3": {
"cvssV3": {
"attackComplexity": "HIGH",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N",
"version": "3.0"
},
"exploitabilityScore": 1.6,
"impactScore": 3.6
}
},
"lastModifiedDate": "2017-09-21T18:57Z",
"publishedDate": "2017-09-06T21:29Z"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…