{"api_version":"1","generated_at":"2026-07-23T13:25:00+00:00","cve":"CVE-2021-32819","urls":{"html":"https://cve.report/CVE-2021-32819","api":"https://cve.report/api/cve/CVE-2021-32819.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2021-32819","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2021-32819"},"summary":{"title":"CVE-2021-32819","description":"Squirrelly is a template engine implemented in JavaScript that works out of the box with ExpressJS. Squirrelly mixes pure template data with engine configuration options through the Express render API. By overwriting internal configuration options remote code execution may be triggered in downstream applications. This issue is fixed in version 9.0.0. For complete details refer to the referenced GHSL-2021-023.","state":"PUBLIC","assigner":"security-advisories@github.com","published_at":"2021-05-14 19:15:00","updated_at":"2023-05-22 19:15:00"},"problem_types":["CWE-200"],"metrics":[],"references":[{"url":"https://github.com/squirrellyjs/squirrelly/commit/dca7a1e7ee91d8a6ffffb655f3f15647486db9da","name":"https://github.com/squirrellyjs/squirrelly/commit/dca7a1e7ee91d8a6ffffb655f3f15647486db9da","refsource":"MISC","tags":[],"title":"don't pass view options · squirrellyjs/squirrelly@dca7a1e · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://securitylab.github.com/advisories/GHSL-2021-023-squirrelly/","name":"https://securitylab.github.com/advisories/GHSL-2021-023-squirrelly/","refsource":"MISC","tags":[],"title":"GHSL-2021-023: Remote code execution in squirrelly - CVE-2021-32819 | GitHub Security Lab","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/squirrellyjs/squirrelly/commit/c12418a026f73df645ba927fd29358efe02fed1e","name":"https://github.com/squirrellyjs/squirrelly/commit/c12418a026f73df645ba927fd29358efe02fed1e","refsource":"MISC","tags":[],"title":"Don't merge data.settings into the config option · squirrellyjs/squirrelly@c12418a · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/squirrellyjs/squirrelly/pull/254","name":"https://github.com/squirrellyjs/squirrelly/pull/254","refsource":"MISC","tags":[],"title":"[security] Don't use data object for Squirrelly configuration by legobeat · Pull Request #254 · squirrellyjs/squirrelly · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.npmjs.com/package/squirrelly","name":"https://www.npmjs.com/package/squirrelly","refsource":"MISC","tags":[],"title":"squirrelly  -  npm","mime":"text/html","httpstatus":"200","archivestatus":"429"},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-32819","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-32819","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2021","cve_id":"32819","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"squirrelly","cpe5":"squirrelly","cpe6":"8.0.8","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2021-32819","qid":"982588","title":"Nodejs (npm) Security Update for squirrelly (GHSA-q8j6-pwqx-pm96)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2021-32819","STATE":"PUBLIC","TITLE":"Remote code execution in squirrelly"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"squirrelly","version":{"version_data":[{"version_affected":"<","version_name":"9.0.0","version_value":"9.0.0"}]}}]},"vendor_name":"squirrellyjs"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"Squirrelly is a template engine implemented in JavaScript that works out of the box with ExpressJS. Squirrelly mixes pure template data with engine configuration options through the Express render API. By overwriting internal configuration options remote code execution may be triggered in downstream applications. This issue is fixed in version 9.0.0. For complete details refer to the referenced GHSL-2021-023."}]},"generator":{"engine":"Vulnogram 0.0.9"},"impact":{"cvss":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"CHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-200 Information Exposure"}]}]},"references":{"reference_data":[{"name":"https://securitylab.github.com/advisories/GHSL-2021-023-squirrelly/","refsource":"CONFIRM","url":"https://securitylab.github.com/advisories/GHSL-2021-023-squirrelly/"},{"name":"https://github.com/squirrellyjs/squirrelly/pull/254","refsource":"MISC","url":"https://github.com/squirrellyjs/squirrelly/pull/254"},{"name":"https://github.com/squirrellyjs/squirrelly/commit/c12418a026f73df645ba927fd29358efe02fed1e","refsource":"MISC","url":"https://github.com/squirrellyjs/squirrelly/commit/c12418a026f73df645ba927fd29358efe02fed1e"},{"name":"https://github.com/squirrellyjs/squirrelly/commit/dca7a1e7ee91d8a6ffffb655f3f15647486db9da","refsource":"MISC","url":"https://github.com/squirrellyjs/squirrelly/commit/dca7a1e7ee91d8a6ffffb655f3f15647486db9da"}]},"source":{"advisory":"GHSL-2021-023","discovery":"UNKNOWN"}},"nvd":{"publishedDate":"2021-05-14 19:15:00","lastModifiedDate":"2023-05-22 19:15:00","problem_types":["CWE-200"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":8.8,"baseSeverity":"HIGH"},"exploitabilityScore":2.8,"impactScore":5.9},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:M/Au:N/C:P/I:P/A:P","accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":6.8},"severity":"MEDIUM","exploitabilityScore":8.6,"impactScore":6.4,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":true}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:squirrelly:squirrelly:8.0.8:*:*:*:*:*:*:*","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2021","CveId":"32819","Ordinal":"208207","Title":"CVE-2021-32819","CVE":"CVE-2021-32819","Year":"2021"},"notes":[{"CveYear":"2021","CveId":"32819","Ordinal":"1","NoteData":"Squirrelly is a template engine implemented in JavaScript that works out of the box with ExpressJS. Squirrelly mixes pure template data with engine configuration options through the Express render API. By overwriting internal configuration options remote code execution may be triggered in downstream applications. There is currently no fix for these issues as of the publication of this CVE. The latest version of squirrelly is currently 8.0.8. For complete details refer to the referenced GHSL-2021-023.","Type":"Description","Title":null},{"CveYear":"2021","CveId":"32819","Ordinal":"2","NoteData":"2021-05-14","Type":"Other","Title":"Published"},{"CveYear":"2021","CveId":"32819","Ordinal":"3","NoteData":"2021-05-14","Type":"Other","Title":"Modified"}]}}}