{"id":"CVE-2020-15779","aliases":["EUVD-2020-0547","GHSA-9h4g-27m8-qjrg"],"status":"published","title":"Path Traversal in socket.io-file","description":"A Path Traversal issue was discovered in the socket.io-file package through 2.0.31 for Node.js. The socket.io-file::createFile message uses path.join with ../ in the name option, and the uploadDir and rename options determine the path.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.01581,"percentile":0.75702,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-22"],"published":"2020-07-07T19:24:47Z","modified":"2026-06-17T02:57:10Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"socket.io-file","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.0.31"}]}]},{"source":"osv","ecosystem":"npm","package":"socket.io-file","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"2.0.31"}]}]}],"products":[{"vendor":"socket.io-file_project","product":"socket.io-file"}],"references":[{"url":"https://www.npmjs.com/package/socket.io-file","tags":["x_refsource_MISC","x_transferred","Product","Third Party Advisory","web"]},{"url":"https://github.com/rico345100/socket.io-file","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","package"]},{"url":"https://www.npmjs.com/advisories/1519","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://github.com/advisories/GHSA-9h4g-27m8-qjrg","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-15779","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2020-15779","description":"A Path Traversal issue was discovered in the socket.io-file package through 2.0.31 for Node.js. The socket.io-file::createFile message uses path.join with ../ in the name option, and the uploadDir and rename options determine the path.","status":"published","published":"2020-07-15T20:42:39Z","modified":"2024-08-04T13:22:30.824Z","updated_at":"2026-11-02T14:35:50.228781Z"}],"euvd":[{"id":"EUVD-2020-0547","description":"A Path Traversal issue was discovered in the socket.io-file package through 2.0.31 for Node.js. The socket.io-file::createFile message uses path.join with ../ in the name option, and the uploadDir and rename options determine the path.","status":"published","published":"2020-07-15T20:42:39Z","modified":"2024-08-04T13:22:30Z","updated_at":"2026-11-03T03:07:30.980066Z"}],"ghsa":[{"id":"GHSA-9h4g-27m8-qjrg","title":"Path Traversal in socket.io-file","description":"All versions of `socket.io-file` are vulnerable to Path Traversal. The package fails to sanitize user input and uses it to generate the file upload paths. The `socket.io-file::createFile` message contains a `name` option that is passed directly to `path.join()`.   It is possible to upload files to arbitrary folders on the server by sending relative paths on the `name` value, such as `../../test.js`.  The `uploadDir` and `rename` options can be used to define the file upload path.","status":"published","published":"2020-07-07T19:24:47Z","modified":"2023-01-09T05:03:27Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:36:05.071174Z"}],"nvd":[{"id":"CVE-2020-15779","description":"A Path Traversal issue was discovered in the socket.io-file package through 2.0.31 for Node.js. The socket.io-file::createFile message uses path.join with ../ in the name option, and the uploadDir and rename options determine the path.","status":"published","published":"2020-07-15T21:15:12.537Z","modified":"2026-06-17T02:57:10.29Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:06:10.086163Z"}],"osv":[{"id":"GHSA-9h4g-27m8-qjrg","title":"Path Traversal in socket.io-file","description":"All versions of `socket.io-file` are vulnerable to Path Traversal. The package fails to sanitize user input and uses it to generate the file upload paths. The `socket.io-file::createFile` message contains a `name` option that is passed directly to `path.join()`.   It is possible to upload files to arbitrary folders on the server by sending relative paths on the `name` value, such as `../../test.js`.  The `uploadDir` and `rename` options can be used to define the file upload path.","status":"published","published":"2020-07-07T19:24:47Z","modified":"2026-05-04T08:45:49.887196841Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:43.875515Z"}]}}
