From f52e1e9e06eaf1c9849769f6d3821d4dd62b204d Mon Sep 17 00:00:00 2001 From: le king fu Date: Fri, 24 Apr 2026 07:30:41 -0400 Subject: [PATCH] docs(security): seed STATE.md and SECURITY.md after vuln remediation STATE.md follows the 3-section monorepo pattern (Position actuelle, Decisions recentes, Blockers actifs). SECURITY.md tracks resolved CVE (4 HIGH xmldom) and residuals (GHSA-w5hq-g745-h8pq uuid, non-exploitable in practice). Refs #76 Co-Authored-By: Claude Opus 4.7 (1M context) --- SECURITY.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ STATE.md | 21 +++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 SECURITY.md create mode 100644 STATE.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..d29a284 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,50 @@ +# SECURITY — simpl-liste + +Rapport d'etat securite. Scanne quotidiennement par `defenseur-simpl-liste` +(04:15 UTC) dans `~/claude-code/defenseurs/`. + +## CVE resolues + +### 2026-04-24 — Overrides `@xmldom/xmldom` et `uuid` + +Correction via `overrides` dans `package.json`. Aucune n'etait exploitable a +runtime dans l'APK : chaine concernee est build-time (iOS build via xcode, +Expo CLI, plist serialization) ou dev-tunnel (ngrok). + +| CVE | Severite | Package | Fix version | Etat | +|---|---|---|---|---| +| GHSA-2v35-w6hq-6mfw | HIGH | @xmldom/xmldom | ^0.8.13 | Resolu | +| GHSA-f6ww-3ggp-fr8h | HIGH | @xmldom/xmldom | ^0.8.13 | Resolu | +| GHSA-x6wf-f3px-wcqx | HIGH | @xmldom/xmldom | ^0.8.13 | Resolu | +| GHSA-j759-j44w-7fr8 | HIGH | @xmldom/xmldom | ^0.8.13 | Resolu | +| GHSA-w5hq-g745-h8pq | MEDIUM | uuid | ^11.0.0 | Mitigation partielle (voir ci-dessous) | + +## CVE residuelles + +### GHSA-w5hq-g745-h8pq — `uuid` buffer bounds check + +**Status** : mitigation partielle. L'advisory npm flag `uuid <14.0.0` meme apres +override a `^11.0.0`. Bug concerne `uuid.v3() / v5() / v6()` quand `buf` param +est fourni. Les consommateurs transitifs (`xcode`, `@expo/ngrok`) utilisent +uniquement `uuid.v4()` — donc **pas de code path vulnerable atteint en pratique**. + +Non bump vers `^14.0.0` car ESM-only (casserait les imports CJS de xcode et +ngrok dans la chaine build iOS). Voir spec decision D3 pour details. + +**Impact** : cascade via 18 advisories transitives (uuid → xcode/ngrok → expo/* → ...), +toutes remontant a la meme racine. Non-bloquant pour la production. + +**Re-evaluation** : lors du prochain upgrade Expo SDK (quand xcode + ngrok +passeront a une version compatible avec `uuid@^14` ou retireront uuid). + +## Procedure de scan manuel + +```bash +cd ~/claude-code/defenseurs && npx tsx src/defenseur.ts defenseur-simpl-liste +``` + +## Politique de review + +- **HIGH** : fix immediat via PR. +- **MEDIUM** : triage sous 7 jours, fix si exploitable. +- **LOW** : accepte tel quel, documente ici. diff --git a/STATE.md b/STATE.md new file mode 100644 index 0000000..2d30667 --- /dev/null +++ b/STATE.md @@ -0,0 +1,21 @@ +# STATE — simpl-liste + +## Position actuelle + +Version 1.6.1 (versionCode 13). Remediation vulnerabilites du defenseur en cours +via overrides `@xmldom/xmldom@^0.8.13` et `uuid@^11.0.0` dans `package.json` +(overnight 2026-04-24). 4 CVE HIGH xmldom nettoyees ; 1 advisory uuid residuelle +non-exploitable en pratique (details dans `SECURITY.md`). + +## Decisions recentes + +- 2026-04-24 : overrides xmldom + uuid (spec `spec-decisions-vuln-simpl-liste.md`) — PRs #77, #78, #79 (pending-human). +- 2026-04-23 : PR #71 merged — fix widget render-optimiste + timing instrumentation. +- 2026-04-18 : archive milestone `spec-simpl-liste-web` (12/12 done). + +## Blockers actifs + +- Advisory GHSA-w5hq-g745-h8pq (`uuid <14.0.0`) reste flaggee par npm audit + apres override ^11 : non-exploitable (xcode/ngrok utilisent `uuid.v4()`, + bug dans v3/v5/v6+buf). Decision Max requise : accepter le residuel ou + tenter bump ^14 (risque ESM-only). -- 2.45.2