Mozilla
Taskcluster OAuth2 codes were replayable β the handler checked the wrong expiry column
Sortie is an autonomous security researcher that reads your code the way an attacker does β chasing auth bypasses, race conditions, and logic flaws that Semgrep canβt even spell.
no code leaves your infra Β· bring your own LLM Β· agent-agnostic
Real findings, real vendors, coordinated disclosure. Names you know, bugs their scanners missed, patched after we came knocking.
Taskcluster OAuth2 codes were replayable β the handler checked the wrong expiry column
Authorization bypass in an AI feature (details under coordinated disclosure)
Pre-auth backup upload wrote files to disk as root
Improper access control across the tenant boundary
Cross-tenant credential takeover via workflow sharing
more disclosures
since May 2026
want yours on here? β20 coordinated disclosures across the sv-agent research team since May 2026. Found by the harness, reviewed and filed by a human β every one shown here is cleared for disclosure.
Point it at a repo and walk away. Sortie runs the loop a human researcher runs β just without the coffee breaks.
One command drops Sortie into your repo or CI. No agents to babysit, no code shipped off-box.
Sortie tails your diffs and crawls the whole tree on a schedule β auth, billing, webhooks, the scary parts first.
It models what each path is meant to do, finds where that promise breaks β then makes a second, independent model try to refute the bug before you ever see it.
Only findings that survive the challenge β with a written repro and severity β land in Slack, a PR comment, or your tracker.
A regex has never understood what your code is trying to do. That gap is exactly where the interesting bugs live.
SAST finds the bugs that look like bugs. Sortie finds the ones that look like working code β until an attacker holds them the wrong way.
Anthropic, OpenAI, Google, or a model you host yourself. Your keys, your bill, your data boundary. No lock-in, no markup.
Already run Claude Code, Codex, or Cursor? Sortie rides on top of the harness you've got instead of forcing a new one.
Deploy it in your CI, your cloud, your laptop. Nothing phones home. The only thing that leaves is a bug report you asked for.
Rides on the harness you already run
GitHub Copilot & Kiro landing next Β· never rides your subscription token
No dashboard to configure, no source to upload, no sales call to unlock the trial. Copy, paste, watch it work.
We donβt sell you a scanner and hope. We run a free pilot against your codebase, and only start a pricing conversation if we surface something worth paying for.
45 days. One repo. Your infra. A written report of exactly what a motivated attacker would find first β before they do.
Point us at one repo. Sortie flies against it for 45 days on your infra, with your keys.
Or we don't β and you've spent nothing. If the watch doesn't surface a finding you agree matters, there's nothing to buy.
License the harness per deployment β not per seat, per scan, or per finding. Only once there's proof it works.
The honest answers. If yours isnβt here, the pilot will answer it faster than we can.
It's the skills, detectors, threat model, and review gates your coding agent runs through. Sortie doesn't ship its own AI β it drives the agent you already license (Claude Code, Codex, Cursor, Gemini, or a bare model on Bedrock), pointing that reasoning at your repo on a schedule and keeping the notes in-repo as reviewable markdown.
No. Sortie runs on your infrastructure, against your repos, using your own LLM keys. There's no Sortie server in the data path β code and inference both stay in your cloud. Every engine runs read-only and sandboxed. The only thing that leaves is a bug report you asked for.
Bring your own. Anthropic, OpenAI, Google, or a model behind AWS Bedrock or Azure with your own IAM role. Sortie is model-agnostic and never rides a subscription token β it uses the keys and seats you already pay for, and you can swap engines anytime.
No. Scanners match patterns β known sinks, tainted sources, regexes for secrets. Sortie reasons about intent, then makes a second, independent model try to refute every finding before it reaches you. That adversarial challenge is why what lands is an authorization or logic bug that actually breaches you β not a wall of noise.
Found by the harness, reviewed and filed by a human. Sortie surfaces and reproduces the finding; a person confirms it, scopes it, and decides what ships. You stay in the loop β you just skip the part where a bug sits undiscovered for six months.