Skip to content

Release v2.16.0 - #571

Merged
mickgmdb merged 2 commits into
mainfrom
development
Oct 30, 2026
Merged

mickgmdb merged 2 commits into
mainfrom
development

Conversation

@mickgmdb

Copy link
Copy Markdown
Collaborator

Added

  • Embed five detection-only connection-string password rules
    by default in the CLI, kingfisher-rules, and Python SDK, including PostgreSQL/MySQL/MariaDB
    JDBC query passwords and SQL Server JDBC properties. The catalog now has 501 rules;
    broad generic Betterleaks rules remain excluded.
    #558

Changed

  • Refresh Betterleaks to v2.0.0-rc.5 with eight new Labelbox, NuGet, and Tailscale
    content detectors. Filename-only rules remain excluded;
    selected Veles rules are unchanged.
  • Detect AWS access IDs without a nearby secret key; validation and revocation
    still require a matching secret.

Fixed

  • Parse local let declarations and expression sequences inside Betterleaks
    predicates, including rc.5's generic XML filters. Existing rules need no edits.
  • Keep generated validation and revocation commands concise while preserving required
    component values and named captures, including AWS access-key revocation bindings.
    Omit AWS validation commands when the matching secret component is absent.
  • Reject malformed private-key fixtures with short or numbered placeholder bodies, and
    stop private-key findings at their END marker without consuming nearby source or keys.
    Preserve real private keys pasted with cat -n or editor line-number prefixes.
  • Reject PEM source wrappers without a plausibly encoded key payload using bounded
    structural checks shared by the CLI and SDKs, without matching placeholder or method names.
  • Prepare rules/scanner 3.0.1 and Python SDK 1.6.1 for the shared private-key detection fix.
  • Log PDF extraction failures and limits at DEBUG while continuing to scan raw bytes.
    Hide lopdf reader warnings and errors unless --debug/--verbose is enabled.
  • Show finding details when clicking Investigate in the Overview's Investigation
    Queue, and restore page scrolling and focus when closing the dialog.

Copilot AI balanced review requested due to automatic review settings October 29, 2026 22:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The greedy context pattern skips the first password when multiple connection strings share a line; it needs non-greedy matching, a regression test, and a regenerated bundle.

1 open issue
What changed in this PR

Prepares Kingfisher v2.16.0 with expanded secret detection, more reliable reported commands, and scanning and viewer fixes. The connection-string rules restore focused coverage requested in #558 without enabling broad generic detectors.

Changes:

  • Expands the catalog to 501 rules with Betterleaks rc.5 and five first-party connection-string detectors.
  • Improves private-key filtering, AWS credential handling, generated commands, PDF diagnostics, and investigation-dialog visibility.
  • Updates release versions, regression coverage, benchmarks, and documentation.
File Description
tools/​rule-bundle/​src/​main.rs Updates upstream pin and bundles first-party rules with provenance.
tests/​viewer_investigation.cjs Tests dialog visibility, scrolling, and focus restoration.
tests/​smoke_pdf.rs Tests debug-only PDF diagnostics.
tests/​reported_commands.rs Adds command replay and quoting integration tests.
tests/​int_placeholder_credentials.rs Tests private-key placeholder rejection and subsequent detection.
tests/​int_aws_dependency_context.rs Tests standalone AWS IDs and omitted commands.
src/​scanner/​enumerate.rs Moves recoverable PDF diagnostics to DEBUG.
src/​rule_loader.rs Tests first-party rule loading and selection.
src/​reporter/​commands.rs Trims command context and corrects credential bindings.
src/​reporter.rs Centralizes revocation bindings and tests serialized commands.
src/​main.rs Filters PDF and access-map diagnostics by verbosity.
src/​direct_revoke.rs Tests reported AWS revocation inputs.
src/​cli/​commands/​rules.rs Updates built-in rule help text.
scripts/​benchmarks/​README.md Documents connection-string benchmark methodology and results.
scripts/​benchmarks/​connection_string_password.py Adds paired detection and coverage comparisons.
README.md Updates catalog sources and Betterleaks comparison.
python/​tests/​test_private_key_fixtures.py Adds SDK private-key fixture regressions.
python/​tests/​test_connection_string_password.py Tests embedded password detection and redaction.
python/​README.md Updates prepared SDK release information.
python/​examples/​connection_string_password.py Demonstrates offline scanning with redacted output.
llms.txt Simplifies comparison links and descriptions.
docs/​viewer/​index.html Moves shared dialog outside hidden tab panels.
docs/​TOKEN_REVOCATION_SUPPORT.md Updates the upstream revocation reference.
docs/​RULES.md Documents catalog additions and filtering behavior.
docs/​PYPI.md Updates SDK version and publication examples.
docs/​PUBLISHING.md Updates prepared package versions and release commands.
docs/​LIBRARY.md Updates Rust dependency and installation examples.
docs/​INSTALLATION.md Updates the embedded rule count.
docs/​COMPARISON.md Refreshes Betterleaks references and removes mapping comparison.
docs/​ADVANCED.md Documents expanded catalog and source filtering.
docs-site/​scripts/​prepare-docs.py Revises comparison-page metadata.
docs-site/​docs/​usage/​advanced.md Synchronizes advanced usage documentation.
docs-site/​docs/​rules/​overview.md Synchronizes rule coverage and filtering documentation.
docs-site/​docs/​rules/​imported-capabilities.md Explains private-key boundary and structural checks.
docs-site/​docs/​rules/​builtin-rules.md Updates generated catalog and capability counts.
docs-site/​docs/​reference/​python-bindings.md Synchronizes SDK release guidance.
docs-site/​docs/​reference/​library.md Synchronizes Rust library version examples.
docs-site/​docs/​reference/​comparison.md Synchronizes revised capability comparisons.
docs-site/​docs/​llms.txt Synchronizes comparison links.
docs-site/​docs/​getting-started/​installation.md Synchronizes the embedded rule count.
docs-site/​docs/​features/​token-revocation-support.md Synchronizes the upstream revocation reference.
docs-site/​docs/​changelog.md Adds v2.16.0 release notes.
crates/​kingfisher-scanner/​tests/​betterleaks_detection.rs Tests private-key boundaries and numbered source lines.
crates/​kingfisher-scanner/​src/​validation/​validator.rs Updates incomplete AWS binding expectations.
crates/​kingfisher-scanner/​src/​scanner.rs Extends private-key source-wrapper regression tests.
crates/​kingfisher-scanner/​README.md Updates scanner dependency examples.
crates/​kingfisher-scanner/​Cargo.toml Bumps scanner and rules dependency versions.
crates/​kingfisher-rules/​src/​defaults.rs Tests catalog additions and private-key filtering.
crates/​kingfisher-rules/​README.md Documents the expanded bundle and release version.
crates/​kingfisher-rules/​generated/​rules/​kingfisher.yml Adds generated connection-string rules.
crates/​kingfisher-rules/​generated/​NOTICES.txt Updates upstream attribution and first-party licensing.
crates/​kingfisher-rules/​data/​kingfisher-rules.yml Defines five password detectors and exception metadata.
crates/​kingfisher-rules/​data/​kingfisher-rules.md Documents detector rationale, coverage, and retirement conditions.
crates/​kingfisher-rules/​data/​imported-rules-capabilities.md Documents revised private-key filtering.
crates/​kingfisher-rules/​data/​betterleaks-words.md Updates wordlist provenance reference.
crates/​kingfisher-rules/​data/​AGENTS.md Documents first-party rule maintenance requirements.
crates/​kingfisher-rules/​Cargo.toml Bumps the rules crate to 3.0.1.
crates/​kingfisher-rules/​build_support/​builtin_docs.rs Includes first-party sources in generated documentation.
crates/​kingfisher-rules/​build_support/​betterleaks.rs Bounds private-key matches and parses predicate programs.
crates/​kingfisher-rules/​AGENTS.md Adds first-party exception and pipeline guidance.
crates/​kingfisher-python/​Cargo.toml Bumps the Python SDK to 1.6.1.
CHANGELOG.md Adds v2.16.0 release notes.
Cargo.toml Bumps CLI dependencies and adds a quoting-test dependency.
Cargo.lock Synchronizes package versions and dependencies.
AGENTS.md Updates logging and first-party catalog guidance.

Review effort: Balanced

Comment thread tests/connection_string_password.rs Dismissed
Comment thread tests/connection_string_password.rs Dismissed
Comment thread tests/connection_string_password.rs Dismissed
Comment thread tests/connection_string_password.rs Dismissed
Copilot AI balanced review requested due to automatic review settings October 30, 2026 00:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Native scanning, ZIP, and cryptographic dependency upgrades require build, packaging, and runtime validation for CLI binaries and Python wheels, especially on Windows x64/ARM64, which this source-only review cannot establish.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

@mickgmdb
mickgmdb merged commit 67c1ad7 into main Oct 30, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants