Course

Title: Path Traversal in Socket.io-file NPM module

Date: 18/05/2020

CVE-ID: 2020-15779

Author: Thomas Sermpinis

Versions: <= 2.0.31

Package URL: https://www.npmjs.com/package/socket.io-file

Tested on: node v10.19.0, Socket.io-file v2.0.31, socket.io v2.3.0

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.

Technical Report

PoC

Advisory

Github Advisory

CVE-ID (Mitre)

CVE-ID (NIST)