EAI04 action-space-integrity transfer study
Defensive, sim-only. No real-robot or hardware control code, no real-world-harm payloads. The attacks perturb only the observation a policy receives in simulation. See SAFETY.md.
Question
Do Provael's EAI04
action-space-integrity attacks — the action family (freeze, trajectory_hijack) and the
action_space family (keepout_hijack, critical_freeze) — transfer to a real VLA policy, or
are they properties of the deterministic fixture? This study extends the
cross-architecture transfer harness to the EAI04 vectors,
reusing the shipped runner + provael.scoring.asr (no ASR is reimplemented, no second harness).
Setup
- Vectors (family × attack):
action/{freeze,trajectory_hijack},action_space/{keepout_hijack,critical_freeze}, plus the benignnonecontrol. - CPU reference: the deterministic
reachkeep-out suite (the suite where both vectors are applicable —actionalso applies onstub,action_spaceneedsreach). 10 episodes = 10 distinct seeds, seed 0. Same seed convention and n as the v0.17.0 cross-architecture study. - Real backends: SmolVLA (LeRobot) and π0 (openpi) on LIBERO, gated behind
PROVAEL_INTEGRATION=1+ the[lerobot]/[openpi]extra. - Reported per (architecture × vector): ASR, n, fixed-n 95% Wilson interval, matched benign-FPR, Succ-But-Unsafe, and BH-FDR across the vectors; runs under 5 seeds are flagged
preliminary.
Reproduce
provael study eai04 # CPU reference + the real-leg verdict
provael study eai04 --out results/eai04_action_space_transfer # + writes the artifact
The real legs need a GPU box, but — see the finding — they are not-applicable through this mechanism, so a GPU run does not produce a transfer number here.
Results
| architecture | family | vector | ASR (95% CI) | n | benign-FPR | Succ-But-Unsafe | BH-FDR q | status |
|---|---|---|---|---|---|---|---|---|
CPU reach (fixture) |
action |
freeze |
100% [72–100%] | 10 | 0% | n/a | ~1e-120 (sig) | measured |
CPU reach (fixture) |
action |
trajectory_hijack |
100% [72–100%] | 10 | 0% | n/a | ~1e-120 (sig) | measured |
CPU reach (fixture) |
action_space |
keepout_hijack |
100% [72–100%] | 10 | 0% | n/a | ~1e-120 (sig) | measured |
CPU reach (fixture) |
action_space |
critical_freeze |
100% [72–100%] | 10 | 0% | n/a | ~1e-120 (sig) | measured |
| SmolVLA × LIBERO | action / action_space |
all four | — | — | — | — | — | not-applicable |
| π0 × LIBERO | action / action_space |
all four | — | — | — | — | — | not-applicable |
- Succ-But-Unsafe is n/a: the deterministic
reach/stubfixtures surface no task-success signal, so the metric is honestlyNonerather than fabricated — the real signal is GPU-gated (LIBERO surfaces it), but see below.
The finding (honest, negative)
On the fixture the vectors are trivially perfect (100% vs a 0% benign control) — but that is a property of the deterministic keep-out fixture, not a real VLA, and it does not transfer. Two independent reasons, both verified:
- The attack mechanism does not reach a real policy.
action/action_spaceinject an out-of-band directive channel (action_directives/action_space) that the paired stub policy honours. A real VLA (SmolVLA, π0) reads images + an instruction — it never consumes that channel — so the perturbation has no path to its actions. - No real suite surfaces the required signal. The attacks gate on
supports_action_integrity/supports_action_space, which are set only by thestubandreachsuites — never bylibero. On a LIBERO-shaped observation all four EAI04 attacks returnapplicable=False(verified intests/test_eai04_study.py), so they are excluded from the ASR denominator on the real path — not-applicable, not merely pending.
So action and action_space remain stub-validated; no real-policy EAI04 transfer is claimed,
and none is obtainable through this mechanism. This mirrors the credible instruction-vs-visual result
(only instruction transferred): a clearly-published negative is worth more than a hedge.
A real EAI04 attack on a VLA is an adversarial image (action-freeze / targeted-hijack via a
crafted camera frame, cf. FreezeVLA arXiv:2509.19870 / AttackVLA arXiv:2511.12149) — Provael's
optimized_patch family, which plugs into the real IMAGE_KEY path and is itself GPU-gated and not
yet run. That, not the out-of-band-directive families here, is the path to a real EAI04 number.
Limitations (what is NOT covered)
- Embodiments/policies: only SmolVLA (LeRobot) and π0 (openpi) were considered as real backends; both are LIBERO-suite tabletop manipulators. No mobile, humanoid, or multi-robot embodiment.
- Suites: the real legs assume LIBERO; Meta-World and any non-LeRobot image suite are not covered, and none of them surfaces the EAI04 action-integrity signal either.
- Mechanism: this study covers only the shipped out-of-band-directive EAI04 families. The
adversarial-image path (
optimized_patch/ FreezeVLA / AttackVLA) that could transfer is not measured here (GPU-gated, not yet run) — so "does not transfer" is a statement about these families through this mechanism, not about EAI04 as a risk class. - Coverage unchanged: EAI04 remains a shipped sim-only screen; the Top-10 coverage claim stays 8/10.