mongodb/kingfisher

Detect leaked secrets + live validation. Map blast radius across your stack. Revoke fast. Hundreds of rules.

1,229

stars

1,751

commits

Rust

primary language

Sep 9, 2026

updated

mongodb.github.io/kingfisher/
credentials
devsecops
scanning
secrets
secrets-management
security

README

Detect and Validate Secrets Anywhere. Map Access. Revoke Fast.

Kingfisher Logo
Apache 2.0 License Container downloads
GitHub downloads PyPI downloads

Find leaked secrets. Validate what’s live. Map the blast radius. Revoke fast.

Kingfisher is a blazingly fast, completely free and open source secret scanner built in Rust. It detects leaked secrets across your entire stack with hundreds of built-in rules, validates which credentials are actually live, maps the blast radius of every leak, and revokes exposed secrets in minutes - the full defender workflow in one Apache-2.0-licensed release:

Detect → Validate → Map → Triage → Revoke

  • scan source code, Git history, cloud storage, container images, archives, and developer platforms
  • validate which credentials are active
  • map a leaked secrete's identity, permissions, and reachable resources
  • triage findings in a browser, or output as SARIF, JSON, TOON
  • revoke supported secrets

Defender workflow: Follow the end-to-end defender workflow for secret detection, validation, notifications, blast-radius mapping, and revocation.

Scan Targets

Kingfisher handles local files and directories, Git repositories and history, compressed and office-document archives, SQLite databases, Python bytecode, Docker images, source-hosting organizations, cloud object storage, collaboration tools, and API-development platforms.

Files / DirsLocal GitGitHubGitLabAzure ReposBitbucketGiteaHugging Face
Files / Dirs
Files / Dirs
Local Git
Local Git
GitHub
GitHub
GitLab
GitLab
Azure Repos
Azure Repos
Bitbucket
Bitbucket
Gitea
Gitea
Hugging Face
Hugging Face
DockerJiraConfluenceSlackTeamsPostmanAWS S3Google Cloud
Docker
Docker
Jira
Jira
Confluence
Confluence
Slack
Slack
Microsoft Teams
Teams
Postman
Postman
AWS S3
AWS S3
Google Cloud Storage
Cloud Storage

For target-specific commands, authentication, scope, and pagination behavior, use the platform integration guide.

Built for Speed and Accuracy

Kingfisher's multithreaded Vectorscan engine recorded the lowest runtime on every repository in the published benchmark suite, from small projects through the Linux kernel and GitLab monorepo. Lower runtimes are better.

Kingfisher runtime comparison across open source repositories

Despite it's broad feature-set, Kingfisher ships as a compact static binary. For example, the published macOS arm64 comparison measures Kingfisher 2.1.0 at 25.3 MiB, making it easy to distribute in CI jobs and container images.

See the binary-size comparison and deployment options, which includes validation results, network-request counts, test environment, and binary-size comparison.

Why Kingfisher

StageWhat Kingfisher providesLearn more
DetectA blazingly fast, multithreaded Vectorscan regex engine combines SIMD-accelerated matching with language-aware verification across repositories, files, archives, cloud storage, containers, and developer platformsScanning, integrations, benchmarks
ValidateLive provider checks that distinguish active credentials from static candidatesValidation and filtering
MapRead-only blast-radius analysis for supported providers, including advanced AWS role and GCP service-account reachability plus bounded Google API-key probesBlast radius
TriageA local and hosted browser viewer for filtering, deduplication, prioritization, blast-radius inspection, and exportViewer usage, hosted guide
RevokeConservative provider-specific containment workflows for supported credentialsRevocation

Batteries Included with live validation, advanced cloud blast-radius analysis, visual triage, and supported revocation all ship in the free, open source Kingfisher. There is no separate paid or enterprise tier.

A few examples:

kingfisher scan /path/to/code --only-valid --blast-radius --view-report  # a local repo and its Git history
kingfisher scan s3 some-example-bucket --prefix path/to/data/           # an S3 bucket
kingfisher scan gcs bucket-name                                         # a GCS bucket
kingfisher scan docker ghcr.io/owasp/wrongsecrets/wrongsecrets-master:latest-master  # a container image from any registry
kingfisher scan docker --archive image.tar                              # a saved image archive
kingfisher scan github --organization my-org                            # a GitHub organization

See usage for the full command reference and integrations for platform-specific examples, including GitLab, Azure DevOps, Gitea, Slack, and Jira.

See Kingfisher in action with basic scan and validation examples, the end-to-end defender workflow, platform-specific scan examples, blast-radius examples, direct revocation, and CI and pre-commit deployment.

Map the Blast Radius. Revoke the Credential.

For supported credentials, --blast-radius goes beyond a live/inactive verdict. It maps the effective identity, permissions, reachable roles or service accounts, and affected resource scopes. This includes advanced AWS role-assumption, GCP service-account impersonation analysis, and exact read methods accepted by a bounded Google API-key probe allowlist.

The HTML viewer turns that evidence into an interactive access map for rapid investigation and prioritization:

Kingfisher blast-radius access-map HTML view

Kingfisher also provides explicit, defender-led revocation for supported credentials. Revocation is opt-in and is exposed only where Kingfisher has a bounded provider workflow; responders should always confirm the target and operational impact before containment.

Performance, Accuracy, and Extensible Rules

  • Performance: multithreaded, Hyperscan‑powered scanning built for huge codebases
  • Extensible rules: Betterleaks is the main catalog, with selected Veles detectors filling gaps; custom Betterleaks TOML and Kingfisher 1.x YAML rules are supported (built-in rules, docs/RULES.md)
  • Validation and defender-led revocation: validate discovered credentials live, then revoke supported credentials from the CLI. For supported provider flows, responders can contain a leaked token even when its owner is unknown or has left the company (docs/USAGE.md, docs/REVOCATION_PROVIDERS.md)
  • Blast-radius mapping included by default: use --blast-radius (alias --access-map) to map supported credentials to their effective identities, permissions, reachable roles/service accounts, and impacted resource scopes. All 43 providers—including advanced AWS role-assumption and GCP service-account impersonation analysis—are included in the Apache-2.0 release (blast-radius docs)
  • Broad provider coverage: detect and validate credentials across cloud, AI, developer tooling, databases, SaaS, messaging, identity, and cryptographic systems through the Betterleaks- and Veles-based candidate catalog
  • Compressed Files: Supports extracting and scanning compressed files for secrets, including tar.gz/bz2/xz, ZIP-family containers (zip, jar, docx, xlsx, pptx, odt, epub, hwpx, and more), asar, HWP (Hancom OLE2/CFBF binary with DEFLATE/zlib stream decoding), and EGG (ALZip; raw-byte scanning)
  • SQLite Database Scanning: Automatically extracts and scans SQLite database contents for secrets stored in table rows
  • Python Bytecode (.pyc) Scanning: Extracts and scans string constants from compiled Python (.pyc, .pyo) files
  • Baseline management: generate and track baselines to suppress known secrets (docs/BASELINE.md)
  • Checksum-aware custom detection: Kingfisher 1.x custom rules can verify token checksums offline before validation (checksum intelligence)
  • Report Viewer (local + hosted): Visualize and triage Kingfisher, SARIF, Gitleaks, and TruffleHog output locally with kingfisher view ./report.json or online with the hosted viewer. Multiple files, directories, and imported third-party reports are merged and deduplicated. See docs/USAGE.md.
  • Audit reporting: Generate compliance-oriented HTML reports with scan metadata and validation ordering
  • Library crates: Embed Kingfisher's scanning engine in your own Rust applications (docs/LIBRARY.md)

Basic Usage Demo

kingfisher scan /path/to/scan --view-report

NOTE: Replay has been slowed down for demo Kingfisher secret scanning demo

Getting Started

Quick Start

Install with your preferred package manager:

# Homebrew (macOS/Linux)
brew install kingfisher

# PyPI wrapper
uv tool install kingfisher-bin

Then scan a repository, including its Git history:

kingfisher scan /path/to/repository

Open the results in the bundled local viewer:

kingfisher scan /path/to/repository --view-report

See the installation guide for pre-built binaries, Docker, mise, Windows, pre-commit hooks, release verification, and source builds. See the usage guide for validation filters, output formats, scan scope, and command examples.

Live validation and blast-radius mapping make authorized requests to provider APIs. Review the relevant documentation and use them only where you are authorized to inspect the target account.

Common Workflows

GoalStart here
Run an end-to-end credential responseDefender workflow
Scan GitHub, GitLab, Azure Repos, Bitbucket, Gitea, Hugging Face, S3, GCS, Docker, Jira, Confluence, Slack, Teams, or PostmanPlatform integrations
Configure authentication and environment variablesEnvironment-variable reference
Validate or revoke a known credentialDirect validation, revocation
Map identity, permissions, and affected resourcesBlast-radius guide
Triage one or more reports visuallyViewer usage, hosted guide
Configure CI, pre-commit, or centralized scanningDeployment, advanced configuration
Send findings to chat or webhook destinationsAlerts
Produce repository coverage and audit evidenceRepository audit log
Suppress existing findings without hiding new onesBaselines
Write or import custom rulesRule authoring
Embed the scanner in Rust or use it from PythonRust library, Python distribution

Output for People and Machines

Kingfisher supports human-readable output plus TOON, JSON, JSONL, SARIF, BSON, and HTML reports. Use TOON for token-efficient LLM and agent workflows:

kingfisher scan /path/to/repository --format toon --no-update-check

Machine consumers should use structured validation outcomes and finding fingerprints rather than parsing display labels. See output and validation semantics, finding fingerprints, and the full documentation index.

Documentation

Project

Kingfisher is used in MongoDB's production security workflows and is integrated by projects such as Prowler and MegaLinter. Read more about its lineage, evolution, and public adoption.

Contributions are welcome. See CONTRIBUTING.md, report vulnerabilities through SECURITY.md, and file feature requests in GitHub Issues.

Kingfisher is licensed under the Apache License 2.0.

Contributors

mickgmdb

1,663 commits

bored-engineer

25 commits

micksmix

18 commits

Safenein

13 commits

mongodb/kingfisher

Detect leaked secrets + live validation. Map blast radius across your stack. Revoke fast. Hundreds of rules.

1,229

stars

1,751

commits

Rust

primary language

Sep 9, 2026

updated

mongodb.github.io/kingfisher/
credentials
devsecops
scanning
secrets
secrets-management
security

README

Detect and Validate Secrets Anywhere. Map Access. Revoke Fast.

Kingfisher Logo
Apache 2.0 License Container downloads
GitHub downloads PyPI downloads

Find leaked secrets. Validate what’s live. Map the blast radius. Revoke fast.

Kingfisher is a blazingly fast, completely free and open source secret scanner built in Rust. It detects leaked secrets across your entire stack with hundreds of built-in rules, validates which credentials are actually live, maps the blast radius of every leak, and revokes exposed secrets in minutes - the full defender workflow in one Apache-2.0-licensed release:

Detect → Validate → Map → Triage → Revoke

  • scan source code, Git history, cloud storage, container images, archives, and developer platforms
  • validate which credentials are active
  • map a leaked secrete's identity, permissions, and reachable resources
  • triage findings in a browser, or output as SARIF, JSON, TOON
  • revoke supported secrets

Defender workflow: Follow the end-to-end defender workflow for secret detection, validation, notifications, blast-radius mapping, and revocation.

Scan Targets

Kingfisher handles local files and directories, Git repositories and history, compressed and office-document archives, SQLite databases, Python bytecode, Docker images, source-hosting organizations, cloud object storage, collaboration tools, and API-development platforms.

Files / DirsLocal GitGitHubGitLabAzure ReposBitbucketGiteaHugging Face
Files / Dirs
Files / Dirs
Local Git
Local Git
GitHub
GitHub
GitLab
GitLab
Azure Repos
Azure Repos
Bitbucket
Bitbucket
Gitea
Gitea
Hugging Face
Hugging Face
DockerJiraConfluenceSlackTeamsPostmanAWS S3Google Cloud
Docker
Docker
Jira
Jira
Confluence
Confluence
Slack
Slack
Microsoft Teams
Teams
Postman
Postman
AWS S3
AWS S3
Google Cloud Storage
Cloud Storage

For target-specific commands, authentication, scope, and pagination behavior, use the platform integration guide.

Built for Speed and Accuracy

Kingfisher's multithreaded Vectorscan engine recorded the lowest runtime on every repository in the published benchmark suite, from small projects through the Linux kernel and GitLab monorepo. Lower runtimes are better.

Kingfisher runtime comparison across open source repositories

Despite it's broad feature-set, Kingfisher ships as a compact static binary. For example, the published macOS arm64 comparison measures Kingfisher 2.1.0 at 25.3 MiB, making it easy to distribute in CI jobs and container images.

See the binary-size comparison and deployment options, which includes validation results, network-request counts, test environment, and binary-size comparison.

Why Kingfisher

StageWhat Kingfisher providesLearn more
DetectA blazingly fast, multithreaded Vectorscan regex engine combines SIMD-accelerated matching with language-aware verification across repositories, files, archives, cloud storage, containers, and developer platformsScanning, integrations, benchmarks
ValidateLive provider checks that distinguish active credentials from static candidatesValidation and filtering
MapRead-only blast-radius analysis for supported providers, including advanced AWS role and GCP service-account reachability plus bounded Google API-key probesBlast radius
TriageA local and hosted browser viewer for filtering, deduplication, prioritization, blast-radius inspection, and exportViewer usage, hosted guide
RevokeConservative provider-specific containment workflows for supported credentialsRevocation

Batteries Included with live validation, advanced cloud blast-radius analysis, visual triage, and supported revocation all ship in the free, open source Kingfisher. There is no separate paid or enterprise tier.

A few examples:

kingfisher scan /path/to/code --only-valid --blast-radius --view-report  # a local repo and its Git history
kingfisher scan s3 some-example-bucket --prefix path/to/data/           # an S3 bucket
kingfisher scan gcs bucket-name                                         # a GCS bucket
kingfisher scan docker ghcr.io/owasp/wrongsecrets/wrongsecrets-master:latest-master  # a container image from any registry
kingfisher scan docker --archive image.tar                              # a saved image archive
kingfisher scan github --organization my-org                            # a GitHub organization

See usage for the full command reference and integrations for platform-specific examples, including GitLab, Azure DevOps, Gitea, Slack, and Jira.

See Kingfisher in action with basic scan and validation examples, the end-to-end defender workflow, platform-specific scan examples, blast-radius examples, direct revocation, and CI and pre-commit deployment.

Map the Blast Radius. Revoke the Credential.

For supported credentials, --blast-radius goes beyond a live/inactive verdict. It maps the effective identity, permissions, reachable roles or service accounts, and affected resource scopes. This includes advanced AWS role-assumption, GCP service-account impersonation analysis, and exact read methods accepted by a bounded Google API-key probe allowlist.

The HTML viewer turns that evidence into an interactive access map for rapid investigation and prioritization:

Kingfisher blast-radius access-map HTML view

Kingfisher also provides explicit, defender-led revocation for supported credentials. Revocation is opt-in and is exposed only where Kingfisher has a bounded provider workflow; responders should always confirm the target and operational impact before containment.

Performance, Accuracy, and Extensible Rules

  • Performance: multithreaded, Hyperscan‑powered scanning built for huge codebases
  • Extensible rules: Betterleaks is the main catalog, with selected Veles detectors filling gaps; custom Betterleaks TOML and Kingfisher 1.x YAML rules are supported (built-in rules, docs/RULES.md)
  • Validation and defender-led revocation: validate discovered credentials live, then revoke supported credentials from the CLI. For supported provider flows, responders can contain a leaked token even when its owner is unknown or has left the company (docs/USAGE.md, docs/REVOCATION_PROVIDERS.md)
  • Blast-radius mapping included by default: use --blast-radius (alias --access-map) to map supported credentials to their effective identities, permissions, reachable roles/service accounts, and impacted resource scopes. All 43 providers—including advanced AWS role-assumption and GCP service-account impersonation analysis—are included in the Apache-2.0 release (blast-radius docs)
  • Broad provider coverage: detect and validate credentials across cloud, AI, developer tooling, databases, SaaS, messaging, identity, and cryptographic systems through the Betterleaks- and Veles-based candidate catalog
  • Compressed Files: Supports extracting and scanning compressed files for secrets, including tar.gz/bz2/xz, ZIP-family containers (zip, jar, docx, xlsx, pptx, odt, epub, hwpx, and more), asar, HWP (Hancom OLE2/CFBF binary with DEFLATE/zlib stream decoding), and EGG (ALZip; raw-byte scanning)
  • SQLite Database Scanning: Automatically extracts and scans SQLite database contents for secrets stored in table rows
  • Python Bytecode (.pyc) Scanning: Extracts and scans string constants from compiled Python (.pyc, .pyo) files
  • Baseline management: generate and track baselines to suppress known secrets (docs/BASELINE.md)
  • Checksum-aware custom detection: Kingfisher 1.x custom rules can verify token checksums offline before validation (checksum intelligence)
  • Report Viewer (local + hosted): Visualize and triage Kingfisher, SARIF, Gitleaks, and TruffleHog output locally with kingfisher view ./report.json or online with the hosted viewer. Multiple files, directories, and imported third-party reports are merged and deduplicated. See docs/USAGE.md.
  • Audit reporting: Generate compliance-oriented HTML reports with scan metadata and validation ordering
  • Library crates: Embed Kingfisher's scanning engine in your own Rust applications (docs/LIBRARY.md)

Basic Usage Demo

kingfisher scan /path/to/scan --view-report

NOTE: Replay has been slowed down for demo Kingfisher secret scanning demo

Getting Started

Quick Start

Install with your preferred package manager:

# Homebrew (macOS/Linux)
brew install kingfisher

# PyPI wrapper
uv tool install kingfisher-bin

Then scan a repository, including its Git history:

kingfisher scan /path/to/repository

Open the results in the bundled local viewer:

kingfisher scan /path/to/repository --view-report

See the installation guide for pre-built binaries, Docker, mise, Windows, pre-commit hooks, release verification, and source builds. See the usage guide for validation filters, output formats, scan scope, and command examples.

Live validation and blast-radius mapping make authorized requests to provider APIs. Review the relevant documentation and use them only where you are authorized to inspect the target account.

Common Workflows

GoalStart here
Run an end-to-end credential responseDefender workflow
Scan GitHub, GitLab, Azure Repos, Bitbucket, Gitea, Hugging Face, S3, GCS, Docker, Jira, Confluence, Slack, Teams, or PostmanPlatform integrations
Configure authentication and environment variablesEnvironment-variable reference
Validate or revoke a known credentialDirect validation, revocation
Map identity, permissions, and affected resourcesBlast-radius guide
Triage one or more reports visuallyViewer usage, hosted guide
Configure CI, pre-commit, or centralized scanningDeployment, advanced configuration
Send findings to chat or webhook destinationsAlerts
Produce repository coverage and audit evidenceRepository audit log
Suppress existing findings without hiding new onesBaselines
Write or import custom rulesRule authoring
Embed the scanner in Rust or use it from PythonRust library, Python distribution

Output for People and Machines

Kingfisher supports human-readable output plus TOON, JSON, JSONL, SARIF, BSON, and HTML reports. Use TOON for token-efficient LLM and agent workflows:

kingfisher scan /path/to/repository --format toon --no-update-check

Machine consumers should use structured validation outcomes and finding fingerprints rather than parsing display labels. See output and validation semantics, finding fingerprints, and the full documentation index.

Documentation

Project

Kingfisher is used in MongoDB's production security workflows and is integrated by projects such as Prowler and MegaLinter. Read more about its lineage, evolution, and public adoption.

Contributions are welcome. See CONTRIBUTING.md, report vulnerabilities through SECURITY.md, and file feature requests in GitHub Issues.

Kingfisher is licensed under the Apache License 2.0.

Contributors

mickgmdb

1,663 commits

bored-engineer

25 commits

micksmix

18 commits

Safenein

13 commits

Languages

Rust

97.2%