For cpg data flow analysis, the strongest matches are secure-software-engineering/phasar (Phasar is a C++ static analysis framework built specifically), ajinabraham/nodejsscan (This project is a static application security testing tool) and github/codeql (CodeQL is a flagship code property graph analysis tool). bearer/bearer and presidentbeef/brakeman round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Hand-picked open-source tools for code property graph and data flow analysis, ranked by stars and activity. Compare and find the right one.
Phasar is a static analysis framework designed for the inspection of software logic through the processing of compiler intermediate representations. It provides a modular pipeline for building program representations, including call graphs, control flow graphs, and type hierarchies, which serve as the foundation for deep structural analysis of software behavior. The framework specializes in interprocedural data flow analysis and pointer alias resolution, enabling the tracking of information movement across function boundaries and the identification of indirect memory access patterns. By lever
Phasar is a C++ static analysis framework built specifically for interprocedural data flow analysis, pointer resolution, and program representation generation to support security auditing and vulnerability detection.
nodejsscan is a static analysis security tool and vulnerability detection engine designed to scan Node.js source code for security flaws and common coding vulnerabilities. It functions as a static application security testing tool that analyzes code without executing the program. The tool operates as a security linter that can be integrated into continuous integration pipelines to block insecure code from merging into main branches. It automates the auditing process through rule-based detection and pattern-based static analysis. The project provides capabilities for vulnerability alert autom
This project is a static application security testing tool for Node.js source code, though it relies on pattern-based detection and AST parsing rather than full code property graph based data flow analysis.
CodeQL is a semantic code analysis engine and vulnerability scanning tool that treats source code as data. It utilizes a static analysis query language to define complex patterns and security vulnerabilities within a code graph database. The system represents source code as a relational database, enabling the execution of structural queries and data flow analysis. This approach allows for the detection of security flaws and coding errors across large-scale repositories. The tool provides capabilities for automated code auditing, static analysis security testing, and custom vulnerability dete
CodeQL is a flagship code property graph analysis tool that treats source code as a database, providing a powerful declarative query language for advanced data flow analysis and static application security testing across multiple languages.
Bearer is a static analysis security testing tool and privacy compliance auditor. It identifies security vulnerabilities, hard-coded secrets, and privacy risks in source code through static analysis and data flow tracing. The tool distinguishes itself by tracking the movement of sensitive data through code to identify leaks and by mapping personal and health-related information flows to generate evidence for privacy impact assessments. It also provides differential scanning for pull requests and uses fingerprint-based suppression to exclude known false positives from reports. The platform co
Bearer is a static application security testing tool that performs data flow tracing to identify vulnerabilities and privacy risks, though it uses a purpose-built scanning engine rather than an explicit, queryable code property graph.
Brakeman is a static analysis security tool and scanner specifically designed for Ruby on Rails source code. It identifies common security vulnerabilities, such as injection and cross-site scripting, by analyzing the application codebase without executing the application. The tool functions as a security auditor that detects mass assignment risks and template vulnerabilities. It evaluates the final output of rendered views and identifies unrestricted assignment patterns that could allow unauthorized modification of model attributes. The system provides vulnerability management through the us
Brakeman is a static analysis security scanner for Ruby on Rails that performs targeted vulnerability detection, making it a fitting domain tool even though it is specialized for a single language and lacks a general code property graph engine.
Semgrep is a static analysis security testing tool designed to identify vulnerabilities and logic errors by matching source code against declarative patterns. It functions as an automated scanner that integrates into development workflows to detect insecure code patterns and enforce coding standards before deployment. The engine utilizes a language-agnostic intermediate representation and a modular parser architecture to normalize diverse programming languages into a unified format. This allows for consistent rule execution across different codebases, enabling users to perform custom structur
Semgrep is a static analysis tool that supports pattern matching and taint analysis for vulnerability detection, though it relies on abstract syntax tree structural patterns rather than a full code property graph.
Infer is a static analysis toolset for Java, C, C++, and Objective-C designed to detect memory leaks, null dereferences, and resource bugs. It functions as a multi-language bug finder that identifies race conditions, deadlocks, and memory safety issues by translating source code into a common intermediate representation for analysis. The project distinguishes itself through an inter-procedural data flow analyzer that tracks movement between sources and sinks to detect tainted flows and generate data flow graphs. It also includes a framework for verifying temporal properties and reachability u
Infer is a static analysis toolset that translates source code into intermediate representations to perform inter-procedural data flow analysis and detect security and resource bugs, though it relies on its own analysis engine rather than a distinct code property graph query model.
SVF is an open-source static program analysis framework and points-to analysis library that tracks memory references, variable aliases, and data dependencies across whole programs. The platform translates compiled intermediate code formats into unified internal representations, constructing constraint graphs, call graphs, and control-flow graphs to model interprocedural execution behavior and memory state. The framework incorporates specialized engines for flow-sensitive, flow-insensitive, and context-sensitive pointer analysis alongside sparse value-flow graph generation. It features memory
This LLVM-based static analysis framework focuses on value-flow and pointer analysis for C and C++, serving as a powerful building block for data flow auditing even though it lacks a dedicated vulnerability query language or multi-language support beyond C/C++/LLVM IR.