This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

The native secret patterns miss several prefix-anchored vendor tokens, which capture writes into the committed ledger

issueresolvedminoriss-2610280103498613

The native secret patterns miss several prefix-anchored vendor tokens, which capture writes into the committed ledger

Published as security advisory GHSA-jr36-r49j-cmj2; the advisory is the public account of this finding.

What

The native secret patterns (internal/adapter/scanner/patterns.go:169-350) cover GitHub, Anthropic, OpenAI, OpenRouter, generic sk-, AWS access key IDs, Slack xox*, Google AIza, Stripe, JWT and PEM. They have no pattern for several other prefix-anchored, fixed-shape vendor tokens: npm (npm_), GitLab personal access tokens (glpat-), Hugging Face (hf_), DigitalOcean (dop_v1_), HashiCorp Vault (hvs.), Shopify (shpat_), PyPI (pypi-), SendGrid (SG.) and Slack incoming-webhook URLs.

dcn-2608280000000002 scopes the always-on native set to prefix-anchored tokens and leaves labelled, delimited and high-entropy values to the opt-in gitleaks augmenter. These families are prefix-anchored, the class the native set says it covers. When gitleaks is not armed, abcd capture (and resolve and promote) writes them verbatim into the committed issue ledger, and the run reports nothing redacted for them, while internal/core/capture/redact.go says it sanitises prose bound for the committed ledger. The same detector serves decide, the outbound-text check and the launch release scan.

Reproduced by running abcd capture in a scratch repository with text holding these tokens: the record under .abcd/work/issues/open/ keeps every one verbatim; a ghp_ control in the same text is masked.

Labelled values (aws_secret_access_key = …, Authorization: Bearer …, user:pass@ URLs, AccountKey=) are outside this advisory: iss-96 recorded them as the opt-in adapter's reach.

Affected versions

Every released version up to and including 0.15.1. Patched versions will be set when the release carrying the fix is cut.

Would it exist without abcd?

Not on this route. A person can paste a token into any file, but here abcd takes the text, promises to redact it, and writes it into a committed tier. The redaction claim is abcd's, so abcd fixes it.

Fix

Add hard-fail, prefix-anchored patterns for the families above to the native set, each with runtime-assembled tests and a false-positive sweep of the tree. Detector change only; no repository behaviour changes.

Frontmatter

idiss-2610280103498613
typeissue
lifecycleresolved
severityminor

mentions2