fix(security): override postcss to ^8.5.10 #80

Merged
maximus merged 1 commit from fix/vuln-postcss-override into master 2026-04-28 01:26:12 +00:00
Owner

Summary

Override postcss: ^8.5.10 pour corriger GHSA-qx2v-qp2m-jg93 (XSS via unescaped </style> in CSS stringify output) apparue apres la milestone vuln-simpl-liste de 2026-04-24.

Pure suite des PRs #77 / #78 / #79.

Verification

  • npm ls postcss → 8.5.12 overridden partout (Expo metro-config + Tailwind)
  • npm audit postcss → null
  • npx tsc --noEmit passe
  • Defenseur scan : 13/13 passed, 0 findings (uuid cascade reste suppressee via l'allowlist defenseurs GHSA-w5hq-g745-h8pq)
  • Pas de bump version/versionCode (build-time only)

Notes

  • postcss est utilise par le bundler Metro pour processer Tailwind/NativeWind. Pas de runtime DOM dans React Native, donc le XSS n'est pas exploitable runtime. Mais le fix est dispo (^8.5.10) et clean → on prend.
  • L'advisory GHSA-qx2v-qp2m-jg93 a ete publiee tres recemment (apparue dans le scan post-merge du 2026-04-25, absente du scan d'autopilot de la veille).
## Summary Override `postcss: ^8.5.10` pour corriger `GHSA-qx2v-qp2m-jg93` (XSS via unescaped `</style>` in CSS stringify output) apparue apres la milestone vuln-simpl-liste de 2026-04-24. Pure suite des PRs #77 / #78 / #79. ## Verification - `npm ls postcss` → 8.5.12 overridden partout (Expo metro-config + Tailwind) - `npm audit` postcss → null - `npx tsc --noEmit` passe - **Defenseur scan : 13/13 passed, 0 findings** (uuid cascade reste suppressee via l'allowlist defenseurs `GHSA-w5hq-g745-h8pq`) - Pas de bump version/versionCode (build-time only) ## Notes - `postcss` est utilise par le bundler Metro pour processer Tailwind/NativeWind. Pas de runtime DOM dans React Native, donc le XSS n'est pas exploitable runtime. Mais le fix est dispo (^8.5.10) et clean → on prend. - L'advisory `GHSA-qx2v-qp2m-jg93` a ete publiee tres recemment (apparue dans le scan post-merge du 2026-04-25, absente du scan d'autopilot de la veille).
maximus added 1 commit 2026-04-27 23:45:42 +00:00
Resolves GHSA-qx2v-qp2m-jg93 (PostCSS XSS via Unescaped </style> in CSS
Stringify Output) in the @expo/metro-config + tailwindcss build chain.
Build-time only, not runtime-exploitable in RN, but cleared for audit hygiene.

Defenseur scan post-override: 13/13 passed, 0 findings (the residual uuid
cascade is suppressed via defenseurs allowlist for GHSA-w5hq-g745-h8pq).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Author
Owner

Verdict: APPROVE

Summary

Override propre et minimal de postcss vers ^8.5.10 pour corriger GHSA-qx2v-qp2m-jg93. Le diff se limite a package.json (ajout override) + package-lock.json (resolution 8.4.49 -> 8.5.12), parfaitement aligne avec la suite des PRs #77/#78/#79.

Analyse

Securite

  • Aucun secret/credential dans le diff.
  • L'override cible la racine postcss ; toutes les chaines transitives (Expo metro-config, Tailwind, NativeWind) tirent 8.5.12 >= 8.5.10 requis par l'advisory.
  • Justification correcte : en React Native il n'y a pas de DOM runtime, donc le XSS sur </style> non exploitable runtime. Mais fix dispo et clean -> hygiene defensive bienvenue.
  • npm audit postcss = null, coherent avec 8.5.12.

Correctness

  • package.json bien forme (virgule correctement ajoutee avant "postcss").
  • package-lock.json met aussi a jour nanoid de ^3.3.7 -> ^3.3.11 (transitive postcss legitime).
  • Pattern coherent avec les overrides deja en place (esbuild, @xmldom/xmldom, uuid).

Tests

  • Pas de test applicable (vuln build-time, pas de logique applicative changee).
  • Verifications PR body : tsc --noEmit passe, defenseur 13/13 passed, npm audit clean.
  • Pas de bump version/versionCode : correct, build-time only.

Quality

  • Diff minimal, exactement ce qu'on attend pour un security override.
  • Pas de bruit hors scope.
  • Branche fix/vuln-postcss-override + commit fix(security): conformes Conventional Commits.

Data

  • N/A.

Suggestions (non bloquantes)

  1. Pas de Fixes #N dans le body. Si l'advisory a ete trackee comme issue (milestone vuln-simpl-liste), un Fixes #N aiderait pour la sync automatique des labels. Pas de blocage si purement reactif au scan defenseur.
  2. versionCode reste a 1.6.1 (correct vu qu'aucun code applicatif ne change). S'assurer que le prochain build EAS preview/prod aura un versionCode strictement superieur (cf CLAUDE.md - autoIncrement: true ne s'applique qu'au profil production).

LGTM, merge quand pret.

## Verdict: APPROVE ## Summary Override propre et minimal de `postcss` vers `^8.5.10` pour corriger `GHSA-qx2v-qp2m-jg93`. Le diff se limite a `package.json` (ajout override) + `package-lock.json` (resolution `8.4.49` -> `8.5.12`), parfaitement aligne avec la suite des PRs #77/#78/#79. ## Analyse **Securite** - Aucun secret/credential dans le diff. - L'override cible la racine `postcss` ; toutes les chaines transitives (Expo metro-config, Tailwind, NativeWind) tirent `8.5.12` >= 8.5.10 requis par l'advisory. - Justification correcte : en React Native il n'y a pas de DOM runtime, donc le XSS sur `</style>` non exploitable runtime. Mais fix dispo et clean -> hygiene defensive bienvenue. - `npm audit` postcss = null, coherent avec 8.5.12. **Correctness** - `package.json` bien forme (virgule correctement ajoutee avant `"postcss"`). - `package-lock.json` met aussi a jour `nanoid` de `^3.3.7` -> `^3.3.11` (transitive postcss legitime). - Pattern coherent avec les overrides deja en place (`esbuild`, `@xmldom/xmldom`, `uuid`). **Tests** - Pas de test applicable (vuln build-time, pas de logique applicative changee). - Verifications PR body : `tsc --noEmit` passe, defenseur 13/13 passed, npm audit clean. - Pas de bump version/versionCode : correct, build-time only. **Quality** - Diff minimal, exactement ce qu'on attend pour un security override. - Pas de bruit hors scope. - Branche `fix/vuln-postcss-override` + commit `fix(security):` conformes Conventional Commits. **Data** - N/A. ## Suggestions (non bloquantes) 1. Pas de `Fixes #N` dans le body. Si l'advisory a ete trackee comme issue (milestone vuln-simpl-liste), un `Fixes #N` aiderait pour la sync automatique des labels. Pas de blocage si purement reactif au scan defenseur. 2. `versionCode` reste a 1.6.1 (correct vu qu'aucun code applicatif ne change). S'assurer que le prochain build EAS preview/prod aura un `versionCode` strictement superieur (cf CLAUDE.md - `autoIncrement: true` ne s'applique qu'au profil production). LGTM, merge quand pret.
maximus merged commit 2245484407 into master 2026-04-28 01:26:12 +00:00
Sign in to join this conversation.
No reviewers
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-liste#80
No description provided.