NoSQL operator or query injection
An unexpected object, operator, or expression crosses a NoSQL query boundary.
Candidate CWE: CWE-943
Test hypothesis#
Use a local string-only filter with one synthetic matching row. Compare a scalar with an operator object, then change its operand to a nonexistent marker. Inspect the resulting filter and tenant predicate.
Evidence required#
The crafted value changes prohibited query semantics or removes a security constraint. Show the expected input contract, resulting query, and controlled data/action impact.
Rule out false positives#
An API intentionally exposing a constrained query language, an operator accepted only as text, or validation errors is not automatically vulnerable.
Playbook and command references#
- Trace input into queries, commands, and templates — Prove interpretation at a specific sink using small paired experiments instead of payload spraying.
Find the associated command snippets
Referenced by these target playbooks#
Report checklist#
- Capture the affected version, configuration, identities, and object ownership.
- Preserve a valid baseline and a negative control.
- Reproduce the forbidden data access, action, or state change on controlled fixtures.
- Explain the intended security rule and why the observed behavior violates it.
- State prerequisites, uncertainty, cleanup, and the smallest demonstrated impact.
Conditional ATT&CK mapping#
No direct ATT&CK mapping selected. Record the weakness and demonstrated impact without forcing an adversary-behavior classification. See the mapping guide.