From fd31a9fa4c25e1e252de7c1bb5c9d5ce130306c6 Mon Sep 17 00:00:00 2001 From: Thierry Date: Thu, 4 Jun 2026 13:30:08 +0200 Subject: [PATCH 1/2] =?UTF-8?q?docs(security):=20catch-up=20audit=20log=20?= =?UTF-8?q?=E2=80=94=20Sprint=202.C=20runs=20+=2004/06=20agent=20break-ins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The security-audit-log had not been appended since 17 May while ~5 security-auditor runs (9.x/10) happened during Sprint 2.C. Consolidate them retroactively from the Obsidian decision log + merged PRs (scores NOT re-executed — original verdicts, traceability only), plus today's agent break-ins: supabase-backend-auditor WS3 re-run (SHIP, H1 confirmed/mitigated, THI-339), user-forensics-auditor load probe (confirmed), legal-compliance break-in (6.5/10, 3 HIGH B2B → THI-340). Co-Authored-By: Claude Opus 4.8 --- docs/security-audit-log.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/security-audit-log.md b/docs/security-audit-log.md index c1e2b8f9..657b54de 100644 --- a/docs/security-audit-log.md +++ b/docs/security-audit-log.md @@ -5,6 +5,39 @@ This log is updated after each security audit and serves as institutional memory --- +## Rattrapage traçabilité — runs Sprint 2.C + break-ins agents (consolidé 4 juin 2026) + +**Date**: 4 juin 2026 (consolidation rétroactive) +**Auteur**: CC Terminal Learning (Opus 4.8) — drift détecté au startup : ce log n'avait pas été appendé depuis le 17 mai alors que ~5 runs `security-auditor` 9.x/10 ont eu lieu pendant Sprint 2.C. +**Méthode**: consolidation depuis les décisions `_index.md` (Obsidian) + memos session + PRs mergées. **Scores non ré-exécutés** — repris des verdicts d'origine (traçabilité, pas nouveau run). + +### Runs Sprint 2.C (système support) + +| Date | Run | Score / Verdict | PR | Ticket | +|---|---|---|---|---| +| 1 juin | `security-auditor` (route Resend `api/support/notify.ts`) | 9.2/10, 0 CRIT/HIGH | #360 | THI-319 | +| 1 juin | `route-attack-auditor` (notify endpoint, curl live) | SHIP, tout PASS | #360 | THI-319 | +| 2 juin | `security-auditor` (triage signalements `/app/admin`) | 9.5/10 | #364 | THI-320 | +| 2 juin | `security-auditor` (« Mes signalements » `/app/support`, isolation RLS REST+JWT prouvée) | 9.6/10 | #366 | THI-325 | +| 2 juin | `supabase-backend-auditor` (verdict **inline** — agent non chargé runtime, YAML cassé) | H1 MIME-spoof signalé | #364 | THI-326 | + +### Break-ins agents (4 juin — session démarrage) + +| Run | Verdict | Suite | +|---|---|---| +| `supabase-backend-auditor` — re-run WS3 (1er run sous-agent réel post-fix #365) | ⚠️ SHIP — prod SÛRE, H1 MIME-spoof confirmé empiriquement & atténué (rendu `` JSX-only) | THI-339 (PR #368, triggers élargis aux routes `api/*`) | +| `user-forensics-auditor` — sonde chargement (post-#365) | ✅ chargement runtime confirmé (Sonnet 4.6) | — | +| `legal-compliance-auditor` — break-in #1 | **6.5/10** — base B2C OK, **non prêt B2B mineurs** (3 HIGH : consentement parental <13 BE, DPA Art. 28, claim `/privacy` trompeur) | THI-340 (umbrella) | + +### Note de contexte + +THI-326 a prouvé (cause racine js-yaml) que `supabase-backend-auditor` + `user-forensics-auditor` n'étaient **pas chargés au runtime** (un `:` + espace cassait leur frontmatter YAML) jusqu'au fix PR #365 — d'où le verdict « inline » du 2 juin pour `supabase-backend-auditor`. Les deux sont **confirmés invocables le 4 juin** (WS3 clos). + +**Last Updated**: 4 juin 2026 +**Next Review**: prochain run `security-auditor` (THI-234 widgets analytics — nouvelles RPC cross-user `SECURITY DEFINER`) + +--- + ## Validation Voie B post-merge THI-207 (#246) -- 17 mai 2026 ~21h CEST **Date**: 17 mai 2026 (soirée) From fcd8977067ca892fae9f6be64adf8f9d38011b23 Mon Sep 17 00:00:00 2001 From: Thierry Date: Thu, 4 Jun 2026 13:34:13 +0200 Subject: [PATCH 2/2] docs(security): apply Sourcery FR phrasing fixes (#369) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - "au startup" → "au démarrage" - "memos session" → "memos de session" - "Break-ins agents" → "Break-in des agents (… démarrage de session)" - "non prêt B2B mineurs" → "non prêt pour le B2B mineurs" Co-Authored-By: Claude Opus 4.8 --- docs/security-audit-log.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/security-audit-log.md b/docs/security-audit-log.md index 657b54de..e492cccf 100644 --- a/docs/security-audit-log.md +++ b/docs/security-audit-log.md @@ -8,8 +8,8 @@ This log is updated after each security audit and serves as institutional memory ## Rattrapage traçabilité — runs Sprint 2.C + break-ins agents (consolidé 4 juin 2026) **Date**: 4 juin 2026 (consolidation rétroactive) -**Auteur**: CC Terminal Learning (Opus 4.8) — drift détecté au startup : ce log n'avait pas été appendé depuis le 17 mai alors que ~5 runs `security-auditor` 9.x/10 ont eu lieu pendant Sprint 2.C. -**Méthode**: consolidation depuis les décisions `_index.md` (Obsidian) + memos session + PRs mergées. **Scores non ré-exécutés** — repris des verdicts d'origine (traçabilité, pas nouveau run). +**Auteur**: CC Terminal Learning (Opus 4.8) — drift détecté au démarrage : ce log n'avait pas été appendé depuis le 17 mai alors que ~5 runs `security-auditor` 9.x/10 ont eu lieu pendant Sprint 2.C. +**Méthode**: consolidation depuis les décisions `_index.md` (Obsidian) + memos de session + PRs mergées. **Scores non ré-exécutés** — repris des verdicts d'origine (traçabilité, pas nouveau run). ### Runs Sprint 2.C (système support) @@ -21,13 +21,13 @@ This log is updated after each security audit and serves as institutional memory | 2 juin | `security-auditor` (« Mes signalements » `/app/support`, isolation RLS REST+JWT prouvée) | 9.6/10 | #366 | THI-325 | | 2 juin | `supabase-backend-auditor` (verdict **inline** — agent non chargé runtime, YAML cassé) | H1 MIME-spoof signalé | #364 | THI-326 | -### Break-ins agents (4 juin — session démarrage) +### Break-in des agents (4 juin — démarrage de session) | Run | Verdict | Suite | |---|---|---| | `supabase-backend-auditor` — re-run WS3 (1er run sous-agent réel post-fix #365) | ⚠️ SHIP — prod SÛRE, H1 MIME-spoof confirmé empiriquement & atténué (rendu `` JSX-only) | THI-339 (PR #368, triggers élargis aux routes `api/*`) | | `user-forensics-auditor` — sonde chargement (post-#365) | ✅ chargement runtime confirmé (Sonnet 4.6) | — | -| `legal-compliance-auditor` — break-in #1 | **6.5/10** — base B2C OK, **non prêt B2B mineurs** (3 HIGH : consentement parental <13 BE, DPA Art. 28, claim `/privacy` trompeur) | THI-340 (umbrella) | +| `legal-compliance-auditor` — break-in #1 | **6.5/10** — base B2C OK, **non prêt pour le B2B mineurs** (3 HIGH : consentement parental <13 BE, DPA Art. 28, claim `/privacy` trompeur) | THI-340 (umbrella) | ### Note de contexte