Skip to main content

Rule taxonomy (CWE / OWASP)

Each rule carries a static CWE (and where applicable OWASP) mapping in its RuleMeta. Every emitted crates/zuit-core/src/finding.rs ships cwe and owasp arrays alongside its references field. The CLI --cwe / --owasp filters use these arrays for rule-pack selection (see AGENTS.md and crates/zuit-cli/src/analyze.rs).

Mapping​

  • 31Total rules
  • 24With CWE
  • 11With OWASP
  • 3Languages
CWE/OWASP mapping for every rule
Rule IDNameCWEOWASPLanguages
MAINT001-cyclomaticCyclomatic complexityCWE-1121—
RsPyJS
MAINT002-cognitiveCognitive complexityCWE-1121—
RsPyJS
MAINT003-fn-lengthFunction lengthCWE-1121—
RsPyJS
MAINT004-file-lengthFile lengthCWE-1080—
RsPyJS
MAINT005-deep-nestingDeeply nested control flowCWE-1124—
RsPyJS
MAINT006-too-many-paramsToo many parametersCWE-1121—
RsPyJS
DOC001-public-api-undocUndocumented public APICWE-1059—
RsPyJS
DOC002-todo-fixmeTODO/FIXME commentCWE-546—
RsPyJS
DOC004-stale-docStale doc comment——
RsPyJS
SEC001-hardcoded-secretHardcoded secretCWE-798A07:2021
RsPyJS
SEC002-eval-sinkDynamic eval sinkCWE-95, CWE-79A03:2021
RsPyJS
SEC003-shell-injectionShell injectionCWE-78A03:2021
RsPyJS
SEC004-weak-cryptoWeak crypto primitiveCWE-327A02:2021
RsPyJS
SEC005-insecure-deserInsecure deserializationCWE-502A08:2021
RsPyJS
SEC006-sql-injectionSQL injectionCWE-89A03:2021
RsPyJS
SEC007-path-traversalPath traversalCWE-22A01:2021
RsPyJS
SEC008-csrf-missingMissing CSRF protectionCWE-352A01:2021
RsPyJS
SEC009-open-redirectOpen redirectCWE-601A01:2021
RsPyJS
SEC010-ssrfServer-side request forgeryCWE-918A10:2021
RsPyJS
SEC011-cors-permissivePermissive CORSCWE-942A05:2021
RsPyJS
SEC101-rust-unsafeUse of `unsafe` (Rust)CWE-758—
RsPyJS
CPLX001-fan-outHigh fan-out——
RsPyJS
CPLX002-cyclic-depsCyclic module dependencies——
RsPyJS
PKG001-install-script-presentInstall script presentCWE-506—
RsPyJS
SOUND003-transmute-usage`transmute` usageCWE-704—
RsPyJS
TEST001-test-ratioLow test-to-code ratio——
RsPyJS
TEST002-no-assertsTest without assertions——
RsPyJS
TEST003-skippedSkipped test——
RsPyJS
TEST004-flaky-timeTime-based flakinessCWE-362—
RsPyJS
TEST005-assert-countExcessive assertions in test——
RsPyJS
TEST006-shared-mutable-stateShared mutable test stateCWE-820—
RsPyJS
note

All other rule families (SOUND001-002,004-006, PKG002-005, HEALTH, CHAIN, PERF, ECO, CI) are operational/quality rules and do not carry CWE/OWASP tags.

Where these flow​

  • JSON output — cwe / owasp arrays per finding (omitted when empty).
  • SARIF 2.1.0 — emitted as result-level taxa references.
  • Terminal / Markdown — printed alongside the rule id when present.
  • zuit list analyzers — shown next to the rule's metadata.
  • zuit analyze --owasp <CAT> / --cwe <ID> — post-analysis allowlist filters; case-insensitive, repeatable, intersect when combined.