GitHub Advisoryadvisory · npm

GHSA-vm64-cfqx-3698 Code Injection in jsen

HIGH Published 2022-02-10 Modified 2023-09-11 Official page ↗
Aliases
CVE-2020-7777
Ecosystem
npm
Packages
jsen
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-94
Reviewed
2021-04-14

Affected packages

• npm jsen: <= 0.6.6 (no fix yet)

Description

This affects all versions of package jsen. If an attacker can control the schema file, it could run arbitrary JavaScript code on the victim machine. In the module description and README file there is no mention about the risks of untrusted schema files, so it is assumed that this is applicable. In particular the required field of the schema is not properly sanitized. The resulting string that is build based on the schema definition is then passed to a `Function.apply();`, leading to an Arbitrary Code Execution. PoC ```js const jsen = require('jsen'); let schema = JSON.parse( { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;username&quot;: { &quot;type&quot;: &quot;string&quot; } }, &quot;required&quot;: [&quot;\\&quot;+process.mainModule.require(\&#39;child_process\&#39;).execSync(\&#39;touch malicious\&#39;)+\\&quot;&quot;] } ); const validate = jsen(schema); validate({}); ```

Related

Alias · CVE (1)

  • CVE-2020-7777 This affects all versions of package jsen. vulnerability

Weakness · CWE (1)

  • CWE-94 Improper Control of Generation of Code weakness

References