{"api_version":"1","generated_at":"2026-07-23T18:38:48+00:00","cve":"CVE-2021-31597","urls":{"html":"https://cve.report/CVE-2021-31597","api":"https://cve.report/api/cve/CVE-2021-31597.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2021-31597","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2021-31597"},"summary":{"title":"CVE-2021-31597","description":"The xmlhttprequest-ssl package before 1.6.1 for Node.js disables SSL certificate validation by default, because rejectUnauthorized (when the property exists but is undefined) is considered to be false within the https.request function of Node.js. In other words, no certificate is ever rejected.","state":"PUBLIC","assigner":"cve@mitre.org","published_at":"2021-04-23 00:15:00","updated_at":"2021-12-08 20:27:00"},"problem_types":["CWE-295"],"metrics":[],"references":[{"url":"https://github.com/mjwwit/node-XMLHttpRequest/compare/v1.6.0...1.6.1","name":"https://github.com/mjwwit/node-XMLHttpRequest/compare/v1.6.0...1.6.1","refsource":"MISC","tags":[],"title":"Comparing v1.6.0...1.6.1 · mjwwit/node-XMLHttpRequest · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://security.netapp.com/advisory/ntap-20210618-0004/","name":"https://security.netapp.com/advisory/ntap-20210618-0004/","refsource":"CONFIRM","tags":[],"title":"CVE-2021-31597 Node.js Vulnerability in NetApp Products | NetApp Product Security","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://people.kingsds.network/wesgarland/xmlhttprequest-ssl-vuln.txt","name":"https://people.kingsds.network/wesgarland/xmlhttprequest-ssl-vuln.txt","refsource":"MISC","tags":[],"title":"","mime":"text/plain","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/mjwwit/node-XMLHttpRequest/commit/bf53329b61ca6afc5d28f6b8d2dc2e3ca740a9b2","name":"https://github.com/mjwwit/node-XMLHttpRequest/commit/bf53329b61ca6afc5d28f6b8d2dc2e3ca740a9b2","refsource":"MISC","tags":[],"title":"Fix issue where rejectUnauthorized would default to false instead of … · mjwwit/node-XMLHttpRequest@bf53329 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-31597","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-31597","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2021","cve_id":"31597","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"xmlhttprequest-ssl_project","cpe5":"xmlhttprequest-ssl","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"node.js","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2021-31597","qid":"982081","title":"Nodejs (npm) Security Update for xmlhttprequest-ssl (GHSA-72mh-269x-7mh5)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","ID":"CVE-2021-31597","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":"The xmlhttprequest-ssl package before 1.6.1 for Node.js disables SSL certificate validation by default, because rejectUnauthorized (when the property exists but is undefined) is considered to be false within the https.request function of Node.js. In other words, no certificate is ever rejected."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"url":"https://people.kingsds.network/wesgarland/xmlhttprequest-ssl-vuln.txt","refsource":"MISC","name":"https://people.kingsds.network/wesgarland/xmlhttprequest-ssl-vuln.txt"},{"url":"https://github.com/mjwwit/node-XMLHttpRequest/compare/v1.6.0...1.6.1","refsource":"MISC","name":"https://github.com/mjwwit/node-XMLHttpRequest/compare/v1.6.0...1.6.1"},{"url":"https://github.com/mjwwit/node-XMLHttpRequest/commit/bf53329b61ca6afc5d28f6b8d2dc2e3ca740a9b2","refsource":"MISC","name":"https://github.com/mjwwit/node-XMLHttpRequest/commit/bf53329b61ca6afc5d28f6b8d2dc2e3ca740a9b2"},{"refsource":"CONFIRM","name":"https://security.netapp.com/advisory/ntap-20210618-0004/","url":"https://security.netapp.com/advisory/ntap-20210618-0004/"}]}},"nvd":{"publishedDate":"2021-04-23 00:15:00","lastModifiedDate":"2021-12-08 20:27:00","problem_types":["CWE-295"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"LOW","baseScore":9.4,"baseSeverity":"CRITICAL"},"exploitabilityScore":3.9,"impactScore":5.5},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:P/I:P/A:P","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":7.5},"severity":"HIGH","exploitabilityScore":10,"impactScore":6.4,"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:xmlhttprequest-ssl_project:xmlhttprequest-ssl:*:*:*:*:*:node.js:*:*","versionEndExcluding":"1.6.1","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2021","CveId":"31597","Ordinal":"206889","Title":"CVE-2021-31597","CVE":"CVE-2021-31597","Year":"2021"},"notes":[{"CveYear":"2021","CveId":"31597","Ordinal":"1","NoteData":"The xmlhttprequest-ssl package before 1.6.1 for Node.js disables SSL certificate validation by default, because rejectUnauthorized (when the property exists but is undefined) is considered to be false within the https.request function of Node.js. In other words, no certificate is ever rejected.","Type":"Description","Title":null},{"CveYear":"2021","CveId":"31597","Ordinal":"2","NoteData":"2021-04-22","Type":"Other","Title":"Published"},{"CveYear":"2021","CveId":"31597","Ordinal":"3","NoteData":"2021-06-18","Type":"Other","Title":"Modified"}]}}}