"Academics Devise Open Source Tool For Hunting Node.js Security Flaws"

A group of academic researchers at Johns Hopkins University and Renmin University of China have designed an open-source Node.js bug hunting tool that has already identified 180 security vulnerabilities.  Node.js is an open-source, cross-platform environment for running JavaScript code outside the browser.  While useful, many of the available Node.js packages contain unknown flaws leading to application compromise.  The researchers now 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.  The researchers stated that ODG models JavaScript objects as nodes and represents their relations with Abstract Syntax Tree (AST) as edges.  Specifically, ODG includes fine-grained data dependencies between objects, thus helping taint-style vulnerability detection such as command injection.  The researchers noted that the new approach generates ODG using "flow- and context-sensitive static analysis with hybrid branch-sensitivity and points-to information." The researchers noted 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 look up 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 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.

 

SecurityWeek reports: "Academics Devise Open Source Tool For Hunting Node.js Security Flaws"

Submitted by Anonymous on