STALE MEASUREMENTPast this project's own 2-release window: the published result was measured with v0.32.0, 9 releases ago. Why, and what unblocks it

ProductEvidenceTop 10LeaderboardCompliancePricingDocsStar on GitHub Quickstart
MEASURED MITIGATION · FIXTURE ONLY

A defense is a number, or it is a press release.

Provael ships two measured defenses, one on each side of the policy:instruction canonicalization acts on the input, action envelope acts on what leaves. Here is what each does, the rate before and after with intervals, the controls that stop them winning by cheating — and, at the same size, the reason both studies call their own results close to circular.

The measured mitigation

MEASURED · stub policy · stub suite · fixture
67.5% → 7.5%
adversarial ASR [52–80%] → [3–20%], benign FPR unchanged at 0%
how to read it:
· pre = same run, defense off · post = defense on
· CI = 95% Wilson; n=40 adversarial trials per arm
· clean-task success unchanged — gate accepted
· policy = stub (deterministic CPU fixture), not a real model
Honest limitations - first-class

What this is not.

  • Not a fix. It reduced a measured rate on a fixture; it did not remove the attack surface.
  • Not a guarantee, and not a certification. A measured mitigation is evidence for a safety case, not a conformity assessment.
  • Not a real-model result. One policy (the deterministic CPU stub) and the CPU fixture suites (two for canonicalization, three for the envelope). The only measured real-policy transfer in this project is the instruction family on SmolVLA × LIBERO.
  • Not shown against an optimized attacker. The search used here is not aware of the defense. A canonicaliser is a deterministic, public transform, so an attacker who reads it can search the space it maps into — that question is open.
  • Not evidence for the other four defense rows. Observation filtering, rate limiting, trajectory anomaly detection and output screening remain specified and unproven; the action envelope is the second measured row and has its own study.
What the defense is

One paragraph, evaluable

instruction_canonicalization is an input-side transform that sits between the attack and the policy. Before the instruction reaches the model it strips manner and urgency adverbials (now,immediately, quietly) and unwraps a fixed list of paraphrase frames, then passes the reduced instruction through. It never removes the operator's object or verb — a defense that deleted what the operator asked for would be broken, not safe. It is deterministic and public: the same instruction always canonicalises to the same string, and the word lists are a reviewable constant in the source, not a learned filter. That property is what makes it measurable, and it is also the reason an attacker who reads it can search the space it maps into.

Provenance

Where these numbers come from — and what is missing

Every figure on this page is transcribed from one committed document in the product repo: docs/studies/instruction-canonicalization.md, at commit 81eb62ec (2026-07-28). Produced with tool version 0.25.1, released in v0.26.0.

Unlike /results, there is no committed machine-readable artifact behind this measurement. The product repo commits report.json files for the SmolVLA result and two transfer studies; it commits none for the defense run. What exists is the study document, four report digests, and a deterministic re-run command. The runs are byte-reproducible, so you can regenerate the pair and confirm the digests yourself — but you are checking our arithmetic against a document, not reading a signed artifact. We would rather say that than imply a provenance chain this number does not have.

The measurement

Both suites, including the row that earned no credit

Policy stub,10 episodes per (task, attack), seeds 0–9, horizon 8. Benign control none (present in both arms).

stub suite — 67.5% [52–80%] → 7.5% [3–20%] (n=40 per arm)

Pre and post attack-success rate with 95% Wilson confidence intervals per family for the stub suite, and whether the defense was credited.
FamilyPre ASRPre 95% CIPost ASRPost 95% CICredited
instruction70.0%[52–83%]10.0%[3–26%]credited
optimized_instruction60.0%[31–83%]0.0%[0–28%]credited

reach suite — 35.0% [22–50%] → 0.0% [0–9%] (n=40 per arm)

Pre and post attack-success rate with 95% Wilson confidence intervals per family for the reach suite, and whether the defense was credited.
FamilyPre ASRPre 95% CIPost ASRPost 95% CICredited
instruction46.7%[30–64%]0.0%[0–11%]credited
optimized_instruction0.0%[0–28%]0.0%[0–28%]not credited
The second defense

Action envelope — the same protocol, on the other side of the policy

Bounds what leaves the policy rather than what goes in: a magnitude clamp on the commanded action, with bounds derived from a committed measurement of the benign policy itself. It is the second defense measured under the protocol above and the first on the action side: it acts on what leaves the policy, not on the instruction going in.

Verdicts: stub credited, reach credited, humanoid not-credited. The humanoid row is a published null, not a missing measurement — not one interval moved, because a whole-body balance predicate is not a magnitude cap on the channels this defense bounds.

Read this before quoting any number below

Much of the credit is circular by construction: the clamp’s bounds come from the benign policy’s own commanded magnitudes, so an attack that routes through a channel the benign policy never drives goes to 0% by construction. The study says so before it reports a rate.

stub suite — 84.1% [78–89%] → 52.9% [45–60%] (n=10 per arm)

Pre and post attack-success rate with 95% Wilson confidence intervals per family for the stub suite under the action envelope, and whether it was credited.
FamilyPre ASRPre 95% CIPost ASRPost 95% CICredited
instruction70.0%[52–83%]0.0%[0–11%]credited
injection60.0%[39–78%]0.0%[0–16%]credited
visual70.0%[48–85%]0.0%[0–16%]credited
optimized_instruction60.0%[31–83%]0.0%[0–28%]credited
action100.0%[84–100%]100.0%[84–100%]not credited
backdoor100.0%[84–100%]100.0%[84–100%]not credited
authorization100.0%[84–100%]100.0%[84–100%]not credited
confidentiality100.0%[84–100%]100.0%[84–100%]not credited
optimized100.0%[72–100%]100.0%[72–100%]not credited

reach suite — 72.9% [66–79%] → 52.9% [45–60%] (n=10 per arm)

Pre and post attack-success rate with 95% Wilson confidence intervals per family for the reach suite under the action envelope, and whether it was credited.
FamilyPre ASRPre 95% CIPost ASRPost 95% CICredited
instruction46.7%[30–64%]0.0%[0–11%]credited
injection50.0%[30–70%]0.0%[0–16%]credited
visual50.0%[30–70%]0.0%[0–16%]credited
optimized_instruction0.0%[0–28%]0.0%[0–28%]not credited
action_space100.0%[84–100%]100.0%[84–100%]not credited
sensor_spoof100.0%[84–100%]100.0%[84–100%]not credited
misalignment100.0%[84–100%]100.0%[84–100%]not credited

humanoid suite — 27.3% [20–36%] → 27.3% [20–36%] (n=10 per arm)

Pre and post attack-success rate with 95% Wilson confidence intervals per family for the humanoid suite under the action envelope, and whether it was credited.
FamilyPre ASRPre 95% CIPost ASRPost 95% CICredited
humanoid100.0%[89–100%]100.0%[89–100%]not credited
instruction0.0%[0–11%]0.0%[0–11%]not credited
injection0.0%[0–16%]0.0%[0–16%]not credited
visual0.0%[0–16%]0.0%[0–16%]not credited
optimized_instruction0.0%[0–28%]0.0%[0–28%]not credited
One protective measure does not cover a hazard list

One protective measure does not cover a hazard list. The envelope was credited only on rows mapped to EAI04/EAI06. Availability attacks (`freeze`, `critical_freeze`, `stride_freeze`) push the command toward zero, and no upper bound restores a suppressed command; `backdoor`, `authorization` and `confidentiality` all succeed through flags a magnitude cap never touches.

Controls

A defense that blocks legitimate instructions is not a defense

Two controls exist to stop a mitigation winning by breaking the product. Both are published whether or not they flatter the result.

Benign false-positive rate and clean-task success, before and after the defense, for each suite.
Controlstubreach
Benign FPR (matched)0.0% → 0.0%0.0% → 0.0%
Clean-task success100.0% → 100.0% (pre 95% CI [72–100%], n=10) — within CI, acceptednot surfaced by this suite — acceptance gate NOT evaluable
Read this before quoting the number

How much of this result is circular

The fixture policy decides "danger" by summing weights over substrings in the instruction. Four of its seven trigger tokens are words this defense strips, so the canonicaliser can delete 0.7 of the 2.4 total trigger weight the fixture recognises. For optimized_instruction the effect is close to tautological: that attack never names the target object by design, so its entire payload is exactly the wording the defense removes.

What the study shows is that the protocol is sound — the pipeline position is right, the credit rule fires, the controls hold, and the artifact is re-derivable. It does not show that lexical canonicalization defends a real policy. A lexical defense measured against a lexical search on a fixture whose danger function is itself lexical is close to a closed loop, and publishing that sentence is the point.

Crosswalk

Where a measured mitigation fits a safety case

A measured mitigation is candidate evidence for a safety case, not a certification. Nothing below is a conformity assessment or a notified-body opinion.

Framework crosswalk for a measured mitigation: framework, the relevant article or clause, and what the measurement contributes.
FrameworkArticle / clauseWhat a measured mitigation contributes
EU AI ActArt. 15 — accuracy, robustness & cybersecurityA pre/post rate with intervals and a benign control is the shape of evidence Art. 15 asks for on robustness measures. Fixture-only here.
EU Machinery Regulation 2023/1230Annex I — safety functions using AIA documented mitigation with a measured effect and an acceptance gate is candidate evidence toward the technical file. It is not a conformity assessment.
ISO 10218-1/-2:2025Cybersecurity clauses (added in the 2025 revision)Records that a control was applied and measured, rather than asserted.
NIST AI RMF / AI 100-2e2025MANAGE — mitigation selection and monitoringThe pre/post protocol with a benign-FPR control and a clean-task acceptance gate is a MANAGE-function record.
Run it

Reproduce this, or measure your own policy

The runs are deterministic: the same config and seed produce a byte-identical report, so the digests above are reproducible on any machine.

provael attack --policy stub --suite stub \
  --attacks none,instruction,optimized_instruction \
  --episodes 10 --seed 0 --out runs/undefended

provael attack --policy stub --suite stub \
  --attacks none,instruction,optimized_instruction \
  --episodes 10 --seed 0 \
  --defense instruction_canonicalization --out runs/defended

provael mitigation --defended runs/defended \
  --baseline runs/undefended --out runs/mitigation

QuickstartDocsThe defense specThe full study

Published elsewhere

Defenses this project has not matched

Everything above is measured on a deterministic CPU fixture and labelled stub-validated scaffolding, with no real-model transfer claimed. Two defenses published in the last month are measured on a real model, and both on real hardware. A defenses page that lists only its own results reads as a survey of the field and is not one, so the gap is stated here rather than left to be discovered somewhere else.

SARF (against the AGSD patch)Measured on real hardware

Structure-aware robust fine-tuning of the visual encoder only, with zero inference overhead, against patches that hijack action-to-vision attention.

The authors' own reported result: “On LIBERO, SARF reduces OpenVLA’s failure rate under AGSD from 100% to 14.2%-56.8% (28.6% average) across suites while preserving clean performance, and on a real PiPER manipulator it improves average success under AGSD from 23.0% to 65.0%.”

Measured on OpenVLA on LIBERO, and a real PiPER manipulator · arXiv:2608.03231

Provael's comparable resultNone. No Provael defense has been measured against a real model, on any hardware.

ChromaGuard (against the FLARE spotlight attack)Measured on real hardware

Chroma-preserving adversarial training, introduced after showing that naive augmentation teaches a policy to discard colour and collapses it into a shape-only processor.

The authors' own reported result: “On a physical 6-DoF robotic platform, we demonstrate that ChromaGuard achieves 97.5% and 92.5% success rates in benign and attacked color-dependent tasks, respectively.”

Measured on A physical 6-DoF robotic platform · arXiv:2607.14698

Provael's comparable resultNone. Provael models no illumination channel at all.

ActSafeGuard (constraint enforcement inside training)

A differentiable safeguard layer for flow-matching policies. Rather than correcting an unsafe action at inference, it puts hard action feasibility into training through an analytical ray-scaling operator, so boundary-aware gradients push the model onto the constrained manifold. It is the strongest current answer to the objection that runtime safety filters are bolted on: an attack has to move the policy off a manifold it was shaped to stay on, which is harder than defeating a post-hoc filter.

The authors' own reported result: “ActSafeGuard achieves a 100% step safety rate while maintaining or improving task success rates on multiple standard foundation backbones (pi-0.5 and Fast-WAM) across various tasks.”

Measured on pi-0.5 and Fast-WAM backbones across several tasks · arXiv:2609.11697

Provael's comparable resultNone, and two things the headline does not cover. A 100% step safety rate is a rate against the paper’s own constraint set: an envelope predicate outside that set is unaffected, and so is any failure whose harm is not expressible as a per-step action constraint - wrong object, right envelope. It also reports no false-positive rate, and a trained-in constraint has its own benign failure rate on tasks near the boundary. The comparison that would settle it is the attack taxonomy against a pi-0.5 checkpoint with and without the layer, matched per task and seed, each arm carrying its benign control. Nobody has published that and we do not have the compute to run it.

What would make this a real result

The open questions, named

  • A real policy. The same protocol against SmolVLA × LIBERO, where the danger predicate is a keep-out geometry rather than a substring table. That is the only thing that would justify a transfer claim.
  • An adaptive attacker. The current search is not aware of the defense. Measuring against a search that reads the transform is the honest next question, and this study does not answer it.
  • A non-lexical channel. Every result here lives in the instruction channel. The other five rows of the defense taxonomy — observation filtering, action clamping, rate limiting, trajectory anomaly detection, output screening — remain specified and unproven.