Skip to content
@seqra

Seqra

Engineering continuous and lean agentic application security testing

Seqra

Formal program analysis for security agents

OpenTaint · Documentation · Community

Security agents inspect a codebase and save what they learn as taint rules and dependency models. On later scans, static analysis applies those files instead of asking an LLM to rediscover the same behavior. This makes agentic application security testing continuous and lean.

OpenTaint

OpenTaint

OpenTaint is the static-analysis part of this workflow. It is an open source taint analysis engine that tracks untrusted data across methods, fields, aliases, asynchronous code, persistence layers, and framework boundaries.

How agents teach OpenTaint

During a security review, the agent creates two kinds of files:

  • Taint rules define vulnerability classes using sources, sinks, and sanitizers.
  • Dependency models describe how data moves through library and framework code that OpenTaint does not analyze directly.

OpenTaint applies both across the whole codebase. When a scan misses a flow, the agent adds or corrects a rule or dependency model. When a scan reports a safe flow, the agent adds a sanitizer. These changes remain in the project, so every later scan uses them. The agent learns a behavior once, and OpenTaint checks it continuously.

The engine, CLI, rules, and CI integrations are available under Apache 2.0 and MIT licenses.

Start here

Run a scan without installing anything:

npx @seqra/opentaint scan

Read the quick-start guide, or install the agent skills for an end-to-end application-security review.

See the agent workflow

The demo below shows an agent running OpenTaint, following the reported flows, and triaging the results.

An OpenTaint agent workflow scanning a Spring application and returning triaged vulnerabilities

How OpenTaint balances accuracy, precision, and performance

Every static-analysis engine must balance three goals:

  • Accuracy — find real vulnerabilities and avoid false negatives.
  • Precision — report real issues and avoid false positives.
  • Performance — finish with reasonable time and memory on large codebases.

Improving one goal by simplifying the analysis often weakens another. For example, merging all fields of an object can make analysis faster, but it may report safe fields or lose a dangerous flow.

OpenTaint propagates taint to a fixpoint instead of stopping at a fixed depth. It tracks fields separately, resolves aliases and pointers, and keeps calling contexts separate. Extended IFDS, abductive inference, and compact taint representations control the time and memory required for that analysis.

Supported languages and roadmap

OpenTaint supports Java and Kotlin today, with deep modeling for Spring applications.

Java Kotlin Spring Boot

Next: Python and Go.

Python Go

Planned: C#, JavaScript, and TypeScript.

C# JavaScript TypeScript

To report false positives or missed flows, improve rules, submit dependency models, or help extend the engine, open an issue or join us on Discord.

Pinned Loading

  1. opentaint opentaint Public

    The open source taint analysis engine for the AI era. A formal dataflow analysis tool you can customize and self-host, built so AI agents drive your application security analysis without burning to…

    Kotlin 126 10

Repositories

Showing 8 of 8 repositories

Top languages

Loading…

Most used topics

Loading…