Visible to the public Software Reuse Exploits in Node.js Web Apps

TitleSoftware Reuse Exploits in Node.js Web Apps
Publication TypeConference Paper
Year of Publication2021
AuthorsLau, Tuong Phi
Conference Name2021 5th International Conference on System Reliability and Safety (ICSRS)
Keywordsapplication-level DoS, code injection attacks, code reuse attacks, codes, compositionality, data flow analysis, Ecosystems, Information Reuse, Inspection, Manuals, private data leaks, pubcrawl, Resiliency, Safety, security, Servers
AbstractThe npm ecosystem has the largest number of third-party packages for making node.js-based web apps. Due to its free and open nature, it can raise diversity of security concerns. Adversaries can take advantage of existing software APIs included in node.js web apps for achieving their own malicious targets. More specifically, attackers may inject malicious data into its client requests and then submit them to a victim node.js server. It then may manipulate program states to reuse sensitive APIs as gadgets required in the node.js web app executed on the victim server. Once such sensitive APIs can be successfully accessed, it may indirectly raise security threats such as code injection attacks, software-layer DoS attacks, private data leaks, etc. For example, when the sensitive APIs are implemented as pattern matching operations and are called with hard-to-match input string submitted by clients, it may launch application-level DoS attacks.In this paper, we would like to introduce software reuse exploits through reusing packages available in node.js web apps for posing security threats to servers. In addition, we propose an approach based on data flow analysis to detect vulnerable npm packages that can be exposed to such exploits. To evaluate its effectiveness, we collected a dataset of 15,000 modules from the ecosystem to conduct the experiments. As a result, it discovered out 192 vulnerable packages. By manual analysis, we identified 156 true positives of 192 that can be exposed to code reuse exploits for remotely causing software-layer DoS attacks with 128 modules of 156, for code injection with 18 modules, and for private data leaks including 10 vulnerable ones.
DOI10.1109/ICSRS53853.2021.9660640
Citation Keylau_software_2021