Instructions and data
We test boundaries between trusted control and untrusted content.
- Direct and indirect prompt injection
- RAG poisoning and cross-tenant retrieval
- Prompt, data and secret extraction
We test the entire system — data, tools, permissions, memory, orchestration and actions — rather than judging model output in isolation.
Not every undesirable response is a vulnerability. Priority follows achieved capability: accessing another user’s data, performing an action, bypassing policy or persistently changing system behaviour.
We test boundaries between trusted control and untrusted content.
We assess what the system can do, not just what it can say.
Behaviour is tested across time and dependency failures.
We identify assets, roles, untrusted-content sources and unacceptable outcomes.
Normal, edge, adversarial and dependency-failure scenarios become a repeatable test set.
Manual testing, automation and review of the surrounding application are combined.
We report achieved impact, required conditions and the control expected to stop the scenario.
A changed response is lower impact than a confirmed operation performed with agent permissions.
This model explains our reporting format and is not a client story.
The agent retrieves a document containing an untrusted instruction
Orchestration does not separate data from control instructions
The model selects a write-capable tool
The fix enforces policy outside the model and requires confirmation
We can evaluate model behaviour, but application, data and tools often create the greatest risk. The full flow is covered when access permits.
No. We rate impact, repeatability and context. A style change is different from accessing another tenant’s data or executing an operation.
Yes when the architecture supports safe automation. Scenarios are versioned with the model, prompt, tools and acceptance criteria.
We will map trust boundaries and design tests around material business outcomes.