v1.15.1 — Security hardening
Security hardening — 11 vectors, 12/12 tests green
Static audit performed in session 46. Zero new features. Defensive hardening only.
Critical
- C1 —
evalueraudit trail: everyevaluerexecution is now logged with its script
and return value inoperations.jsonl. New--no-evaluerflag blocks the action entirely
— recommended in production on interfaces with sensitive forms. - C2 —
operations.jsonlpermissions: file created with explicit0o640mode anddiwall
group ownership viaos.open. Prevents world-readable journal entries.
Elevated
- E1 —
_prendre_capture(): single entry point for all PNG captures. Secret-masking JS
is guaranteed to run before every screenshot, with restoration infinally. - E2 — URL scheme validation:
javascript:,file:,data:and any non-HTTP scheme
are rejected before Playwright launches (exit code 2). - E3 — Journal URL sanitisation: query string and fragment are stripped before writing
tooperations.jsonl. OAuth tokens and reset codes are never logged. - E4 —
--ignore-tls-errorsflag: replaces the hardcodedignore_https_errors=True.
TLS validation is now strict by default; the flag is opt-in for LAN/internal PKI targets.
Medium
- M1 — Preflight scope: extended from
.md+scenarios/*.jsonto.py,.sh,.yaml. - M2 — Fallback journal:
/tmp/diwall/directory created with0o700, file with0o600. - M3 — Secret masking:
_MASQUER_SECRETS_JSextended from 1 to 9 selectors
(autocomplete,namepatterns for token, secret, otp, totp).
Low
- F1 — Structural credential check: preflight now detects plaintext values in
remplir
actions via Python JSON parsing — no longer relies on a hardcoded password string. - F2 — Inline action validation:
_valider_actions_vault()runs oncharger_actions()
and on the--actioninline path. Avault_clefield withoutdepuis_vaultraises an
error before Playwright launches.