{"api_version":"1","generated_at":"2026-07-23T14:52:46+00:00","cve":"CVE-2021-41580","urls":{"html":"https://cve.report/CVE-2021-41580","api":"https://cve.report/api/cve/CVE-2021-41580.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2021-41580","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2021-41580"},"summary":{"title":"CVE-2021-41580","description":"** DISPUTED ** The passport-oauth2 package before 1.6.1 for Node.js mishandles the error condition of failure to obtain an access token. This is exploitable in certain use cases where an OAuth identity provider uses an HTTP 200 status code for authentication-failure error reports, and an application grants authorization upon simply receiving the access token (i.e., does not try to use the token). NOTE: the passport-oauth2 vendor does not consider this a passport-oauth2 vulnerability.","state":"PUBLIC","assigner":"cve@mitre.org","published_at":"2021-09-27 07:15:00","updated_at":"2023-11-07 03:38:00"},"problem_types":["NVD-CWE-Other"],"metrics":[],"references":[{"url":"https://github.com/jaredhanson/passport-oauth2/pull/144","name":"https://github.com/jaredhanson/passport-oauth2/pull/144","refsource":"MISC","tags":[],"title":"Include check that access token was actually successfully returned by ben12385 · Pull Request #144 · jaredhanson/passport-oauth2 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/jaredhanson/passport-oauth2/compare/v1.6.0...v1.6.1","name":"https://github.com/jaredhanson/passport-oauth2/compare/v1.6.0...v1.6.1","refsource":"MISC","tags":[],"title":"Comparing v1.6.0...v1.6.1 · jaredhanson/passport-oauth2 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/jaredhanson/passport-oauth2/commit/8e3bcdff145a2219033bd782fc517229fe3e05ea","name":"https://github.com/jaredhanson/passport-oauth2/commit/8e3bcdff145a2219033bd782fc517229fe3e05ea","refsource":"MISC","tags":[],"title":"Add test case and avoid parsing internal OAuth error when it doesn't … · jaredhanson/passport-oauth2@8e3bcdf · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-41580","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-41580","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2021","cve_id":"41580","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"passportjs","cpe5":"passport-oauth2","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"node.js","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2021-41580","qid":"980517","title":"Nodejs (npm) Security Update for passport-oauth2 (GHSA-f794-r6xc-hf3v)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","ID":"CVE-2021-41580","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":"** DISPUTED ** The passport-oauth2 package before 1.6.1 for Node.js mishandles the error condition of failure to obtain an access token. This is exploitable in certain use cases where an OAuth identity provider uses an HTTP 200 status code for authentication-failure error reports, and an application grants authorization upon simply receiving the access token (i.e., does not try to use the token). NOTE: the passport-oauth2 vendor does not consider this a passport-oauth2 vulnerability."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"refsource":"MISC","name":"https://github.com/jaredhanson/passport-oauth2/pull/144","url":"https://github.com/jaredhanson/passport-oauth2/pull/144"},{"refsource":"MISC","name":"https://github.com/jaredhanson/passport-oauth2/commit/8e3bcdff145a2219033bd782fc517229fe3e05ea","url":"https://github.com/jaredhanson/passport-oauth2/commit/8e3bcdff145a2219033bd782fc517229fe3e05ea"},{"refsource":"MISC","name":"https://github.com/jaredhanson/passport-oauth2/compare/v1.6.0...v1.6.1","url":"https://github.com/jaredhanson/passport-oauth2/compare/v1.6.0...v1.6.1"}]}},"nvd":{"publishedDate":"2021-09-27 07:15:00","lastModifiedDate":"2023-11-07 03:38:00","problem_types":["NVD-CWE-Other"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":5.3,"baseSeverity":"MEDIUM"},"exploitabilityScore":3.9,"impactScore":1.4},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:P/I:N/A:N","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":5},"severity":"MEDIUM","exploitabilityScore":10,"impactScore":2.9,"acInsufInfo":false,"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:passportjs:passport-oauth2:*:*:*:*:*:node.js:*:*","versionEndExcluding":"1.6.1","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2021","CveId":"41580","Ordinal":"217380","Title":"CVE-2021-41580","CVE":"CVE-2021-41580","Year":"2021"},"notes":[{"CveYear":"2021","CveId":"41580","Ordinal":"1","NoteData":"** DISPUTED ** The passport-oauth2 package before 1.6.1 for Node.js mishandles the error condition of failure to obtain an access token. This is exploitable in certain use cases where an OAuth identity provider uses an HTTP 200 status code for authentication-failure error reports, and an application grants authorization upon simply receiving the access token (i.e., does not try to use the token). NOTE: the passport-oauth2 vendor does not consider this a passport-oauth2 vulnerability.","Type":"Description","Title":null},{"CveYear":"2021","CveId":"41580","Ordinal":"2","NoteData":"2021-09-27","Type":"Other","Title":"Published"},{"CveYear":"2021","CveId":"41580","Ordinal":"3","NoteData":"2021-09-27","Type":"Other","Title":"Modified"}]}}}