{"id":"CVE-2017-16024","aliases":["EUVD-2018-0725","GHSA-38h8-x697-gh8q"],"status":"published","title":"Tmp files readable by other users in sync-exec","description":"The sync-exec module is used to simulate child_process.execSync in node versions \u003c0.11.9. Sync-exec uses tmp directories as a buffer before returning values. Other users on the server have read access to the tmp directory, possibly allowing an attacker on the server to obtain confidential information from the buffer/tmp file, while it exists.","severity":{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.02518,"percentile":0.84939,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-200","CWE-377"],"published":"2018-06-04T19:00:00Z","modified":"2026-10-24T10:30:25Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"sync-exec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.6.2"}]}]},{"source":"osv","ecosystem":"npm","package":"sync-exec","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"0.6.2"}]}]}],"products":[{"vendor":"hackerone","product":"sync-exec node module"},{"vendor":"nodejs","product":"node.js"},{"vendor":"sync-exec_project","product":"sync-exec"}],"references":[{"url":"https://cwe.mitre.org/data/definitions/377.html","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://www.owasp.org/index.php/Insecure_Temporary_File","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/gvarsanyi/sync-exec/issues/17","tags":["x_refsource_MISC","x_transferred","Issue Tracking","Third Party Advisory","report","web"]},{"url":"https://nodesecurity.io/advisories/310","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-16024","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-38h8-x697-gh8q","tags":["advisory"]},{"url":"https://www.npmjs.com/advisories/310","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2017-16024","description":"The sync-exec module is used to simulate child_process.execSync in node versions \u003c0.11.9. Sync-exec uses tmp directories as a buffer before returning values. Other users on the server have read access to the tmp directory, possibly allowing an attacker on the server to obtain confidential information from the buffer/tmp file, while it exists.","status":"published","published":"2018-06-04T19:00:00Z","modified":"2024-09-16T17:48:58.293Z","cwes":["CWE-377"],"updated_at":"2026-11-02T14:33:21.747294Z"}],"euvd":[{"id":"EUVD-2018-0725","description":"The sync-exec module is used to simulate child_process.execSync in node versions \u003c0.11.9. Sync-exec uses tmp directories as a buffer before returning values. Other users on the server have read access to the tmp directory, possibly allowing an attacker on the server to obtain confidential information from the buffer/tmp file, while it exists.","status":"published","published":"2018-06-04T19:00:00Z","modified":"2024-09-16T17:48:58Z","updated_at":"2026-11-03T00:55:38.288771Z"}],"ghsa":[{"id":"GHSA-38h8-x697-gh8q","title":"Tmp files readable by other users in sync-exec","description":"Affected versions of `sync-exec` use files located in `/tmp/` to buffer command results before returning values. As `/tmp/` is almost always set with world readable permissions, this may allow low privilege users on the system to read the results of commands run via `sync-exec` under a higher privilege user.\n\n\n## Recommendation\n\nThere is currently no direct patch for `sync-exec`, as the `child_process.execSync` function provided in Node.js v0.12.0 and later provides the same functionality natively. \n\nThe best mitigation currently is to update to Node.js v0.12.0 or later, and migrate all uses of `sync-exec` to `child_process.execSync()`.","status":"published","published":"2018-11-09T17:45:30Z","modified":"2023-09-07T20:13:49Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-377"],"updated_at":"2026-11-02T14:37:03.287418Z"}],"nvd":[{"id":"CVE-2017-16024","description":"The sync-exec module is used to simulate child_process.execSync in node versions \u003c0.11.9. Sync-exec uses tmp directories as a buffer before returning values. Other users on the server have read access to the tmp directory, possibly allowing an attacker on the server to obtain confidential information from the buffer/tmp file, while it exists.","status":"published","published":"2018-06-04T19:29:01.427Z","modified":"2026-06-17T01:08:39.633Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":4,"vector":"AV:N/AC:L/Au:S/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-377","CWE-200"],"updated_at":"2026-11-02T14:04:17.638656Z"}],"osv":[{"id":"CVE-2017-16024","description":"The sync-exec module is used to simulate child_process.execSync in node versions \u003c0.11.9. Sync-exec uses tmp directories as a buffer before returning values. Other users on the server have read access to the tmp directory, possibly allowing an attacker on the server to obtain confidential information from the buffer/tmp file, while it exists.","status":"published","published":"2018-06-04T19:29:01.427Z","modified":"2026-10-24T10:30:25.168568466Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:04.853379Z"},{"id":"GHSA-38h8-x697-gh8q","title":"Tmp files readable by other users in sync-exec","description":"Affected versions of `sync-exec` use files located in `/tmp/` to buffer command results before returning values. As `/tmp/` is almost always set with world readable permissions, this may allow low privilege users on the system to read the results of commands run via `sync-exec` under a higher privilege user.\n\n\n## Recommendation\n\nThere is currently no direct patch for `sync-exec`, as the `child_process.execSync` function provided in Node.js v0.12.0 and later provides the same functionality natively. \n\nThe best mitigation currently is to update to Node.js v0.12.0 or later, and migrate all uses of `sync-exec` to `child_process.execSync()`.","status":"published","published":"2018-11-09T17:45:30Z","modified":"2023-11-08T03:59:00.317387Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-377"],"updated_at":"2026-11-02T15:46:35.406455Z"}]}}
