Skip to content

feat: add the NOSQL, LOG and PII taint kinds - #102

Merged
SizzleUnrlsd merged 3 commits into
mainfrom
feat/taint-kinds-nosql-log-pii
Sep 21, 2026
Merged

SizzleUnrlsd merged 3 commits into
mainfrom
feat/taint-kinds-nosql-log-pii

Conversation

@SizzleUnrlsd

Copy link
Copy Markdown
Contributor

Closes #96.

What

TaintKind is a Flag a plugin cannot extend, so NoSQL injection, log injection and personal-data detectors either reused an existing kind (mixing their findings with sql-injection or plaintext-credentials) or could not exist.

  • NOSQL joins ALL: ordinary input reaching a NoSQL sink is a flow.
  • LOG and PII stay outside ALL, like CREDENTIAL: only a value a model marks carries them, so ordinary input reaching a logger is not a finding.

Tests

  • test_nosql_is_ordinary_input_while_log_and_pii_are_opt_in — ALL membership.
  • test_ordinary_input_reaches_a_nosql_sink_but_not_a_log_sink — end to end: HTTP input flows into a NOSQL sink, not into a LOG sink; a LOG-marked source does.

Full suite: 891 passed (the docs test enforces that every kind is documented). ruff check and mypy src clean.

Docs

Plugin guide lists the kinds inside and outside ALL and what each opt-in kind means; changelog entry under Unreleased.

TaintKind is a Flag a plugin cannot extend, so NoSQL injection, log
injection and personal-data flows had to reuse another rule's kind. NOSQL
joins ALL; LOG and PII stay outside it like CREDENTIAL, so ordinary input
reaching a logger is not a finding until a model marks the value.

Closes #96
@SizzleUnrlsd
SizzleUnrlsd merged commit d2b4e9f into main Sep 21, 2026
10 checks passed
@SizzleUnrlsd
SizzleUnrlsd deleted the feat/taint-kinds-nosql-log-pii branch September 21, 2026 23:59
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.

Taint kinds: add NOSQL, LOG and PII

1 participant