Bandit
github.com
What it is
Bandit is free software for finding common security issues in Python source code. It builds an abstract syntax tree from scanned files and runs plugins against that tree, then produces a report. A JSON baseline can exclude findings that a team considers non-issues. The project is distributed through PyPI and recommends installation with pip. It runs on Linux and macOS and can be used in self-hosted environments. Optional installation extras add TOML support, the bandit-baseline command-line tool, and SARIF output formatting. Documentation describes pre-commit configuration and integrations with Visual Studio Code, Sublime Text, Vim, Neovim, Emacs, GitHub Actions, Jenkins, Ruff, and Flake8. A published container image supports amd64, arm64, armv7, and armv8 architectures. The project says images are signed with Sigstore Cosign and provides source-verification instructions. Bandit is licensed under Apache License 2.0, with support links to GitHub issues and Discord.
Spec sheet
- What it does
- Bandit parses Python files into abstract syntax trees, applies security-test plugins, and produces a report.Read 21 Oct 2026 · bandit.readthedocs.io
- Purpose
- Bandit scans Python code to find common security issues by building an AST and running plugins against its nodes.Read 5 Oct 2026 · github.com
- Integrations
- Official integration documentation lists VS Code, Sublime Text, Vim/Neovim, Emacs, GitHub Actions, Jenkins, Ruff, and Flake8.Read 21 Oct 2026 · ericwbbandit.readthedocs.io
- Support
- The documentation links to the GitHub issue tracker and a Bandit Discord community.Read 5 Oct 2026 · bandit.readthedocs.io
- License
- The project is distributed under the Apache License 2.0.Read 21 Oct 2026 · github.com
- Baseline
- A JSON baseline report can be used to ignore known findings considered non-issues.Read 5 Oct 2026 · bandit.readthedocs.io
- Baselines
- Bandit can compare a scan with a JSON baseline report to suppress known findings.Read 21 Oct 2026 · bandit.readthedocs.io
- Community listing rating
- HelloGitHub shows 0 ratings for the PyCQA/bandit repository.Read 21 Oct 2026 · hellogithub.com
- Configuration
- Configuration files can select or skip tests, change plugin settings, exclude paths, and define profiles.Read 21 Oct 2026 · bandit.readthedocs.io
- Container
- Official container images are published on ghcr.io for amd64, arm64, armv7, and armv8.Read 21 Oct 2026 · github.com
- Documentation depth
- The documentation site includes getting started, configuration, integrations, plugin references, formatter references, CI/CD guidance, FAQs, and API modules.Read 21 Oct 2026 · bandit.readthedocs.io
- Formatter extensibility
- Report formatters are themselves plugins and additional formatter entry points can be registered through setuptools or pbr.Read 21 Oct 2026 · ericwbbandit.readthedocs.io
- GitHub Action
- The official GitHub Action supports Python version, profile, tests, skips, severity, confidence, exclusions, baseline, ini, and target inputs.Read 21 Oct 2026 · github.com
- Image verification
- The project says every container image is signed with Sigstore Cosign and provides a command to verify its source of origin.Read 5 Oct 2026 · github.com
- Installation
- The documented primary installation method is pip, with optional extras for TOML, baseline, and SARIF support.Read 21 Oct 2026 · bandit.readthedocs.io
- Intended use
- The project describes Bandit as a security linter for Python code.Read 5 Oct 2026 · github.com
- Limit: no platform governance
- Independent guidance describes Bandit as a local CLI without centralized dashboards, policy management, or cross-project reporting.Read 21 Oct 2026 · zairalabs.ai
- Limit: Python-only scope
- Independent reviews identify the Python-only, source-pattern focus as a limitation for polyglot repositories.Read 21 Oct 2026 · gitnux.org
- Limit: shallow analysis
- Independent guidance says Bandit cannot follow dynamic behavior or provide deep interprocedural dataflow analysis.Read 21 Oct 2026 · zairalabs.ai
- Maker structure
- PyCQA expands to Python Code Quality Authority and is described by its own documentation as a loose organization of project maintainers.Read 21 Oct 2026 · meta.pycqa.org
- Operating systems
- PyPI classifies the package for macOS and POSIX/Linux environments.Read 21 Oct 2026 · pypi.org
- Plugin extensibility
- Third-party test plugins are registered through bandit.plugins entry points and receive a context object and AST node.Read 21 Oct 2026 · zairalabs.ai
- Praise: CI output
- GitNux highlights CI-friendly output formats that can feed automated reporting and dashboards.Read 21 Oct 2026 · gitnux.org
- Praise: configurable rules
- GitNux praises the plugin-based engine, configurable filtering, and ability to add or tailor checks.Read 21 Oct 2026 · gitnux.org
- Pre-commit
- The project documents a pre-commit hook configuration using the PyCQA/bandit repository.Read 21 Oct 2026 · bandit.readthedocs.io
- Project origin
- Bandit began in the OpenStack Security Project and was later moved to PyCQA.Read 21 Oct 2026 · github.com
- Python requirement
- The current PyPI package requires Python 3.10 or newer and declares support classifiers through Python 3.14.Read 21 Oct 2026 · pypi.org
- Rating on GitNux
- 9.2 out of 10 from an independent editorial assessment; the page does not state a review count.Read 21 Oct 2026 · gitnux.org
- Release news
- Version 1.9.4 was released on February 25, 2026 with fixes for stdin crashes, false positives, line numbers, and Python-version handling.Read 21 Oct 2026 · github.com
- Report formats
- Documented formatters include CSV, custom, HTML, JSON, SARIF, screen, text, XML, and YAML.Read 21 Oct 2026 · ericwbbandit.readthedocs.io
- Reports
- After scanning files, Bandit generates a report.Read 5 Oct 2026 · bandit.readthedocs.io
- SARIF
- The SARIF formatter emits SARIF 2.1.0 JSON with rule identifiers, severity, confidence, locations, and CWE-linked metadata.Read 21 Oct 2026 · bandit.readthedocs.io
- Scanning modes
- The CLI scans individual files, directories recursively, or Python supplied through standard input.Read 21 Oct 2026 · bandit.readthedocs.io
- Security assessment
- ReversingLabs reports no detected malware, tampering, known vulnerabilities, or exposed secrets in the scanned package version.Read 21 Oct 2026 · secure.software
- Security checks
- Built-in checks cover patterns including unsafe subprocess use, weak cryptography, insecure YAML loading, framework debugging, and risky imports.Read 21 Oct 2026 · bandit.readthedocs.io
- Security reporting
- The security policy directs vulnerability reports to GitHub's private vulnerability reporting and asks reporters to inform Tidelift security.Read 5 Oct 2026 · github.com
- Severity and confidence
- CLI options can filter findings by severity and confidence thresholds.Read 21 Oct 2026 · bandit.readthedocs.io
- Supply-chain verification
- The project says its container images are signed with Sigstore Cosign and provides a verification command.Read 21 Oct 2026 · github.com
- VS Code extension
- The PyCQA VS Code extension bundles Bandit 1.8.3 and can use either the bundled binary or one from the active Python environment.Read 21 Oct 2026 · marketplace.visualstudio.com
Plans and prices
Strong points and limits
Strong points
- Free Apache License 2.0 software
- AST-based Python security scanning
- JSON baselines for known findings
- Editor, CI, and pre-commit integrations
- Signed multi-architecture container images
Limits
- Targets Python source code only
- Runs on Linux and macOS
- Optional features require installation extras
- No free trial is offered
Who it suits
It suits Python developers and security teams seeking source-code analysis in editors, hooks, or CI/CD pipelines. Self-hosted users can run the documented container architectures.
Verdict
Bandit offers focused Python security linting with baseline handling and broad workflow integrations. Its platform and language scope should be checked before adopting it for other codebases.
Where Specifiction places it
- SAST Tools#1 of 269.0
- Static Application Security Testing Software#1 of 259.0