Tenant Zero
One vector namespace serves many customers, and one filter is missing. Prove the leak, fix authorization at retrieval time rather than in the prompt, and re-run both the security and the utility suites.
Practitioner · Comfortable with the basics; you read the trace and reason it out.
Outcome · Correct cross-tenant retrieval authorization in a shared vector store.
AI connection
This activity runs entirely on the deterministic runtime. Optional live-model runtimes only affect dialog, coaching and wording — never checks or scoring.
Nothing leaves the browser session.
Prompts never leave the learner's machine.
Lab prompts reach the learner's chosen provider only.
Customer tenancy; Cybrary sees metadata only.
Cybrary AI gateway; retention off by default.
Per-job — the router never sends restricted jobs off-tenant.
Lab manifest
The machine-readable release contract. Authors edit this; the console refuses to publish without checks, both regression suites and a reference solve.
schemaVersion: cybrary.ai-lab/v1
id: tenant-zero
release: 1.0.0
mode: ai-lab
maturity: 3
roles:
- ai-security-engineer
- platform-engineer
outcomes:
niceTasks:
- T0177
- T0484
atlasTechniques:
- AML.T0057
owaspRisks:
- LLM02
- LLM06
aiAssets:
models:
- support-agent-model@2026.06
prompts:
- tenant-zero-system-prompt@1
agents:
- support-agent-orchestrator@3
tools:
- crm.lookup
- ticket.update
- email.send
- refund.issue
corpora:
- support-kb@v4
enterpriseTopology: support-enterprise-v3
scenario:
seed: tenant-zero-seed-1
injects:
- tenant-zero-inject-1
telemetry:
requiredSignals:
- ai.trace
- rag.retrieval
- tool.call
- identity.auth
- dlp.egress
- siem.alert
evaluation:
deterministicChecks:
- tenant-zero-checks
repeatedTrials: 20
maliciousSuite: tenant-zero-attack-v1
benignSuite: support-utility-v4
safety:
networkEgress: deny
maxTokens: 250000
maxCostUsd: 20