Attack modes¶
Mylonite runs a single-shot attack engine that exercises the four weakness classes (W1–W4) and feeds the validation oracle — the part that actually carries Mylonite's value.
Single-shot (the engine)¶
For each applicable attack pattern, the engine customises a payload, invokes the target once,
and judges the result. The engine itself supports a scan-time flakiness filter
(ScanEngineConfig.runs): with runs > 1 a payload only counts as a finding if it fires in
a strict majority of runs, rejecting a one-in-N fluke — but the scan CLI does not currently
expose this as a flag, so it always runs with runs=1. The flakiness filter you will hit
from the CLI is validate's 5-iteration default (see The validation engine).
This is the fast, deterministic baseline and what gate uses by default. It's all you
need when the target follows injected instructions readily. Source:
mylonite.scan.engine.ScanEngine.
Composing the model roles¶
The scan honours Mylonite's three model roles — set them independently to make the test realistic:
--planner-model— the agent under test. An aligned model refuses injection even on a vulnerable target, hiding the weakness; point this at a representatively exploitable model so the class stays testable.--customiser-model— the attacker (payload crafting).--judge-model— the verdict (only when the deterministic predicate is inconclusive).
mylonite scan --target-file app.yaml --authorize my-app \
--planner-model claude-haiku-4-5 --customiser-model claude-sonnet-4-6
Limitations (read this)¶
The single-shot engine is not a guarantee of exhaustive attack discovery. The validation oracle is the core differentiator — not attack cleverness. One honest limit:
- The attacker is an aligned model, so it under-explores injection. The payload
crafter (
--customiser-model) is itself a safety-aligned LLM. Against an obviously-malicious goal it may decline to craft a more effective payload. When that happens the attempt is reported as skipped (attacker refusal) with the reason "alignment refusal … NOT evidence the target is safe" — never as a clean pass. This is a tooling ceiling: do not read a refusal as a secure target, and bring your own payload corpus when you need to push harder. Mylonite will not jailbreak its own attacker.