Broken property authorization: private response fields
An otherwise permitted object response includes fields the actor is not entitled to read.
Candidate CWE: CWE-862 · CWE-863
Test hypothesis#
Use a controlled object visible to both actors but containing one owner-only synthetic field. Compare owner and viewer responses, including nested API or GraphQL fields and export serializers.
Evidence required#
The viewer receives the private marker from a protected property despite a documented field-level rule. Save the smallest response fragment proving disclosure. Classify an omitted field-level decision as CWE-862, or an implemented but incorrect decision as CWE-863. Confidentiality loss is the impact, not a reason to add CWE-200.
Rule out false positives#
The UI hiding a field, normal public profile metadata, and intentionally shared properties do not establish a read-side permission boundary.
Playbook and command references#
- Object, function, and property authorization — Turn identities, tenants, objects, roles, and lifecycle transitions into a reproducible permission matrix.
- REST, GraphQL, gRPC, WebSocket, and SSE permission parity — Carry the same permission invariant across protocols, nested fields, streams, and alternate API versions.
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.