deps: re-evaluer l'advisory react-router (GHSA-qwww-vcr4-c8h2) lors d'une migration react-router v8 #317

Open
opened 2026-07-27 23:55:30 +00:00 by maximus · 0 comments
Owner

Declencheur de re-evaluation pour l'advisory react-router acceptee en #311.

L'advisory

GHSA-qwww-vcr4-c8h2 — « RSC Mode CSRF Bypass Allows Action Execution Before 400 Response », HIGH, CWE-352. Plage vulnerable : >=7.12.0 <8.3.0. Version installee : 7.18.1, via la dependance directe react-router-dom@^7.18.1.

Pourquoi elle est acceptee, pas corrigee

Inatteignable. L'advisory vise le mode RSC (React Server Components) de react-router. src/App.tsx:109 monte un BrowserRouter client-only, et src/ ne contient aucune occurrence de createStaticHandler, StaticRouter ni de rendu serveur. Une app Tauri desktop n'a pas de serveur : le mode RSC n'existe pas dans ce produit.

Aucun correctif en avant. react-router-dom est fige a 7.18.1 (latest sur npm) : la v8 a fusionne le paquet dans react-router (8.3.0 = latest) et react-router-dom n'a jamais publie de 8.x. Le « fix » propose par npm audit est react-router-dom@7.11.0, un downgrade de sept versions mineures — ce pourquoi npm l'etiquette isSemVerMajor: true.

Sortir de la plage >=7.12.0 <8.3.0 demande donc une migration vers react-router v8 (bascule des imports react-router-dom -> react-router), pas un bump de version.

Consequence a connaitre

npm audit remonte desormais 2 high en permanence (les deux cles react-router et react-router-dom sont la meme advisory, la seconde venant de effects[]). C'est attendu, pas une regression.

Contrairement au cote Rust, rien ne devient rouge : check-frontend.yml lance npm ci, npm run build et npm test, sans aucune etape npm audit. Il n'y a donc pas d'alarme a preserver ici, et pas d'equivalent npm du .cargo/audit.toml introduit par #310npm audit n'a pas de mecanisme d'exclusion natif.

Condition de fermeture

Une migration vers react-router v8 est envisagee (pour cette advisory ou pour d'autres raisons). A ce moment :

  1. Basculer les imports react-router-dom -> react-router et passer en react-router@^8.3.0.
  2. Verifier que npm audit retombe a 0.
  3. Verifier la suite complete : BrowserRouter, les routes de App.tsx, et le remount par key={refreshKey} au changement de profil.

Tant que cette migration n'est pas envisagee pour elle-meme, il n'y a aucune action code a prendre : l'advisory ne touche pas le produit livre.

Releve pendant #311.

Declencheur de re-evaluation pour l'advisory `react-router` acceptee en #311. ## L'advisory [GHSA-qwww-vcr4-c8h2](https://github.com/advisories/GHSA-qwww-vcr4-c8h2) — « RSC Mode CSRF Bypass Allows Action Execution Before 400 Response », HIGH, CWE-352. Plage vulnerable : `>=7.12.0 <8.3.0`. Version installee : **7.18.1**, via la dependance directe `react-router-dom@^7.18.1`. ## Pourquoi elle est acceptee, pas corrigee **Inatteignable.** L'advisory vise le **mode RSC** (React Server Components) de react-router. `src/App.tsx:109` monte un `BrowserRouter` client-only, et `src/` ne contient aucune occurrence de `createStaticHandler`, `StaticRouter` ni de rendu serveur. Une app Tauri desktop n'a pas de serveur : le mode RSC n'existe pas dans ce produit. **Aucun correctif en avant.** `react-router-dom` est fige a **7.18.1** (`latest` sur npm) : la v8 a fusionne le paquet dans `react-router` (8.3.0 = `latest`) et `react-router-dom` n'a jamais publie de 8.x. Le « fix » propose par `npm audit` est `react-router-dom@7.11.0`, un **downgrade** de sept versions mineures — ce pourquoi npm l'etiquette `isSemVerMajor: true`. Sortir de la plage `>=7.12.0 <8.3.0` demande donc une **migration vers `react-router` v8** (bascule des imports `react-router-dom` -> `react-router`), pas un bump de version. ## Consequence a connaitre `npm audit` remonte desormais **2 high en permanence** (les deux cles `react-router` et `react-router-dom` sont la meme advisory, la seconde venant de `effects[]`). C'est attendu, pas une regression. Contrairement au cote Rust, **rien ne devient rouge** : `check-frontend.yml` lance `npm ci`, `npm run build` et `npm test`, sans aucune etape `npm audit`. Il n'y a donc pas d'alarme a preserver ici, et pas d'equivalent npm du `.cargo/audit.toml` introduit par #310 — `npm audit` n'a pas de mecanisme d'exclusion natif. ## Condition de fermeture Une migration vers `react-router` v8 est envisagee (pour cette advisory ou pour d'autres raisons). A ce moment : 1. Basculer les imports `react-router-dom` -> `react-router` et passer en `react-router@^8.3.0`. 2. Verifier que `npm audit` retombe a 0. 3. Verifier la suite complete : `BrowserRouter`, les routes de `App.tsx`, et le remount par `key={refreshKey}` au changement de profil. Tant que cette migration n'est pas envisagee pour elle-meme, il n'y a **aucune action code** a prendre : l'advisory ne touche pas le produit livre. Releve pendant #311.
maximus added the
status:ready
type:infra
source:analyste
labels 2026-07-27 23:55:30 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#317
No description provided.