The four phases
1
Surface mapping
An agent maps the attack surface: routes, parameters, authentication flows, roles, technologies and trust boundaries. In a black box run, any API documentation you attach seeds this. In a white box run, your source provides it. The result is a list pairing each component with the vulnerability classes worth testing against it, sized to the package you chose.
2
Discovery
One agent per item on that list, all running in parallel, each proposing concrete candidates. Nothing here is reported. A candidate is a hypothesis, not a finding.
3
Validation
Each candidate goes to a fresh agent that does not know why it was proposed, which is what stops a plausible story surviving on its own momentum. To become a finding, the candidate must yield a working, minimal and non destructive proof of concept. A known vulnerable dependency instead needs its vulnerable version independently confirmed as present.
4
Fix, white box only
An agent patches the root cause in source and re-runs the proof of concept to prove the issue is gone.
Vulnerability classes
Injection and execution
SQL and NoSQL injection, command execution, server side template injection, XML external entities, insecure deserialization, prototype pollution.
Access control
Insecure direct object references, broken function level authorization, mass assignment, authentication and token handling, cross site request forgery.
Server side
Server side request forgery, path traversal, request smuggling, header injection, open redirect, subdomain takeover, information disclosure.
Client and content
Cross site scripting, insecure file upload and download handling.
Logic
Business logic abuse and race conditions, including multi step attack paths that chain smaller issues.
AI surfaces and supply chain
Prompt injection against AI features, and known vulnerable components confirmed present.
Engagement types
The engagement is derived from what you configured, and is cumulative.
Every finding records the engagement and package that produced it, so a target tested black box once and white box later keeps both results distinguishable.