A group of academic researchers have designed an open source Node.js bug hunting tool that has already identified 180 security vulnerabilities.
Now, academics from the Johns Hopkins University and Renmin University of China propose a new approach to finding security vulnerabilities in Node.js packages.
Inspired by the graph query-based approaches such as Code Property Graph (CPG), the researchers devised a novel graph structure called Object Dependence Graph (ODG), and also built an open-source prototype system called ‘ODGEN’, to use ODG for bug hunting.
“Specifically, ODG includes fine-grained data dependencies between objects, thus helping taint-style vulnerability detection such as command injection,” according to a research paper (.pdf) documenting the work.
The new approach generates ODG using “flow- and context-sensitive static analysis with hybrid branch-sensitivity and points-to information”, the group said, noting that ODG can be used for the offline detection of various types of Node.js vulnerabilities.
ODGEN, which abstractly interprets all branches in parallel, was designed to define and lookup objects for AST nodes and record object definitions and lookups as part of ODG.
The researchers were able to configure ODGEN to identify six types of vulnerabilities, which has led to the discovery of “43 application-level zero-day vulnerabilities with 14 false positives and we also confirmed 137 package-level zero-day vulnerabilities with 84 false positives”.
A total of 70 Common Vulnerabilities and Exposures (CVE) identifiers have been issued for the identified security bugs.