Joern
What it is
Joern is a free, open-source platform for analyzing source code, bytecode and binary code during vulnerability discovery and static program analysis research. It converts programs into code property graphs for cross-language analysis and provides a strongly typed, extensible Scala-based query language. Parsing, taint analysis, search queries and code-property-graph passes support deeper analysis. Joern Scan runs predefined queries against a graph and reports matching issues with their locations; users can choose queries by tag or name, and the default query database accepts community contributions. Queries can be wrapped into custom scanners for CI. Joern also works as a library or through REST and HTTP APIs, including server operation for graph construction and querying. Documented frontends cover C, C++, C#, Go, Java, JavaScript, Kotlin, PHP, Python, Ruby, Swift, x86/x64 and JVM bytecode, with varying maturity. Releases target Linux, macOS and Windows with x86_64 and ARM64 builds. The repository lists JDK 21 as a requirement. Its server does not provide sandboxing and should not be treated as a security boundary.
For and against
For
- Free and open source under Apache-2.0
- Analyzes source, bytecode and binary code
- Supports custom queries and CI scanners
- Offers library, REST and HTTP API use
- Provides Linux, macOS and Windows distributions
Against
- Server lacks sandboxing as a security boundary
- JDK 21 is the listed requirement
- Language frontends have varying maturity
The verdict
Joern offers graph-based code analysis with extensible queries, scanners and automation paths. Its broad platform support is balanced by the stated runtime requirement and the server’s lack of sandboxing.
Who it suits
It suits security researchers and development teams analyzing source, bytecode or binaries across multiple languages. CI users and teams needing custom queries, scanners or APIs may benefit.
On the record
- Analysis features
- Joern provides static taint analysis to trace attacker-controlled data through code.docs.joern.io · read 9 Oct 2026
- API
- Joern can run as an HTTP server, allowing clients to query code property graphs and delegate graph construction and querying to a server machine.docs.joern.io · read 9 Oct 2026
- Automation
- Users can run Joern in non-interactive mode with scripts containing Scala code and Joern directives.docs.joern.io · read 9 Oct 2026
- CI use
- The official site says users can wrap queries into custom scanners and run Joern-based scanners in CI.joern.io · read 9 Oct 2026
- Code representation
- It generates code property graphs, a representation designed for cross-language code analysis.docs.joern.io · read 9 Oct 2026
- Community
- The official site links to a Joern community Discord.joern.io · read 9 Oct 2026
- Customization
- Users can select Joern Scan queries by tags or names, and the default query database accepts community contributions.docs.joern.io · read 8 Oct 2026
- Deployment
- The project documents Docker-based execution, including running Joern in server mode.github.com · read 9 Oct 2026
- Extensibility
- Plugins can add queries, interact with Java libraries, and extend the code property graph schema.docs.joern.io · read 9 Oct 2026
- HTTP API
- Joern’s server exposes an HTTP API for querying code property graphs from non-JVM languages and for outsourcing graph construction and queries to a server.docs.joern.io · read 8 Oct 2026
- Installation
- Prebuilt joern-cli binaries are available, and the documentation describes installation from the project’s releases.docs.joern.io · read 8 Oct 2026
- Integration
- Joern can be used as a library or as a component through its REST API.joern.io · read 8 Oct 2026
- Joern Scan
- Joern Scan runs predefined queries against a program’s code property graph to report matched issues and their locations.docs.joern.io · read 8 Oct 2026
- Language support
- The documentation lists frontends for C/C++, Java, JavaScript, Python, x86/x64, JVM bytecode, Kotlin, PHP, Go, Ruby, Swift, and C# with varying maturity levels.docs.joern.io · read 8 Oct 2026
- License
- The repository identifies Joern as open source and includes an Apache-2.0 license.github.com · read 9 Oct 2026
- License and support
- The repository identifies Joern as open source under the Apache-2.0 license and links to a Discord community.github.com · read 8 Oct 2026
- Operating system releases
- The repository lists release distributions for Linux, macOS, and Windows, with x86_64 and ARM64 builds.github.com · read 9 Oct 2026
- Operating systems
- The project repository lists platform-specific distributions for Linux, macOS, and Windows, each with x86_64 and arm64 variants.github.com · read 8 Oct 2026