6 KiB
STATE — simpl-liste
Derniere MAJ : 2026-10-05 (par /analyse-vulnerabilite, PR #131 : #128, #129)
Position actuelle
Version 1.6.6 (versionCode 18). npm audit = 31 entrees au 2026-10-05 apres PR #131,
pour 3 advisories seulement (le reste est de la cascade de parents) : braces (high,
GHSA-vfj7, ~22 parents metro/jest/tailwind, tete publiee vulnerable -> #130),
node-forge (high, #123, bloquee upstream) et la chaine expo-router -> query-string@7
-> decode-uri-component (3 moderate, risque accepte #120, re-teste dans #126). Toutes
sont de l'outillage de build/dev : rien dans l'APK.
La remediation passe par des overrides de plancher dans package.json :
esbuild, @xmldom/xmldom@^0.8.15, uuid, postcss, js-yaml (3.15.2 / 4.3.2), brace-expansion (1.1.21 / 2.1.7 / 5.0.12),
@babel/core, browserslist@^4.28.7, @react-navigation/core@^7.22.1,
http-cache-semantics@^4 (4.3.0), postcss-selector-parser@^6 (6.1.3), et les 14
paquets metro@^0.83.8. Le smoke test verrouille la chaine de build (presets Expo
hoistes a la racine, un seul SDK Expo, metro 0.83.x partout) et les planchers
brace-expansion / undici / http-cache-semantics / postcss-selector-parser /
comportement de minimatch (majeurs 3, 9, 10).
Caveat sur l'override metro (releve par la review de PR #114) : 0.83.3 -> 0.83.8
n'est pas un bump de patch pur cote API privee. Trois shims de @expo/metro@54.2.0,
ecrit contre 0.83.3, ne resolvent plus — metro-resolver/utils/toPosixPath et
metro/node-haste/Package supprimes, metro-file-map/lib/dependencyExtractor deplace.
Ils leveraient MODULE_NOT_FOUND, mais aucun paquet de l'arbre ne les requiert
(203 des 206 imports profonds metro*/private/... resolvent). Inerte aujourd'hui ;
a re-verifier au prochain bump du SDK Expo ou de @expo/metro.
Companion web liste.lacompagniemaximus.com : deploye manuellement (docker-compose
standalone /data/simpl-liste-web sur le VPS, build depuis source/ rsync — PAS une app
Coolify malgre la spec). Procedure en memoire simpl-liste-web-deploy.
Decisions recentes
- 2026-10-05 : #128 et #129 fermees (PR #131 merged) — planchers version-scoped
http-cache-semantics@^4.0.0-> ^4.3.0 (GHSA-ch52 high : l'advisory ne liste aucun patch, mais 4.3.0 sort de la borne<=4.2.0; tunnel@expo/ngrokseulement) etpostcss-selector-parser@^6.0.0-> ^6.1.3 (low, pipeline tailwind).npm audit33 -> 31. Preuve du livrable : bundle JS (expo export --no-bytecode --clear) identique octet pour octet. Le hash.hbcn'est pas une preuve : Hermes n'est pas deterministe ici (deux exports du meme arbre different). - 2026-10-05 : #126 fermee, acceptation de #120 maintenue —
decode-uri-component@0.5.0est ESM pur,query-string@7lerequire(). Declencheur de sortie :expo-router@58.0.13(SDK 58) retirequery-string, pas encore backporte sur sdk-54..57. #130 ouverte :bracesplancher (3.0.3 = tete publiee, vulnerable). - 2026-10-02 : #124 et #125 fermees (PR #127 merged) — planchers
brace-expansion^1.1.21 / ^2.1.7 / ^5.0.12 (9 advisories DoS neuves, toujours version-scoped) et@expo/cli > undici^6.28.1 (resolu 6.29.0). Outillage de build seulement. Trois gardes au smoke test, dont le testminimatchqui manquait depuis #103.npm audit12 -> 10. Ouvertes le meme jour : #123 (node-forge, tete publiee 1.4.0 vulnerable) et #126 (decode-uri-component@0.5.0publiee). - 2026-09-27 : #120 fermee en risque accepte (rectification du cadrage « attend un bump de SDK »). Aucune version d'expo-router (jusqu'a 58.0.8 / sdk-57) ne quitte
query-string@7. expo-router n'appelle quequeryString.stringify(), qui ne touche jamaisdecode-uri-component(le seulparse()du fork est commente) : code vulnerable inatteignable. A re-verifier a chaque bump d'expo-router. - 2026-09-25 : #121 fermee (PR #122 merged) — planchers
@xmldom/xmldom@^0.8.15etjs-yaml^3.15.2 / ^4.3.2 (advisories HIGH du 2026-09-08, outillage de build seulement, hash du bundle Hermes inchange). Le Defenseur ne les avait pas signalees : hypothese de dedup par paquet contre issues fermees -> agent-defenseurs#139. - 2026-09-25 : #117 fermee (PR #119 merged) — override
@react-navigation/core@^7.22.1, qui ne depend plus dequery-string(GHSA-vcc3-ghjq-m6fr). Lock : 2 entrees. PR #118 du Defenseur fermee : sonnpm audit fixglobal desinstallaitbabel-preset-expo/@expo/metro-configde la racine et nichait un Expo 57 (build casse, tests verts). Gardes de toolchain ajoutees au smoke test. Residuexpo-router-> #120. - 2026-09-04 : #115 ouverte + PR #116 —
browserslist@^4.28.7(2 advisories HIGH publiees le 2026-09-01,first_patched_version = 4.28.7). Resout en 4.28.9, derniere HIGH de l'arbre. Bundle Hermes au hash identique avant/apres : cibles de compilation inchangees. - 2026-09-04 : #112 fermee doublon de #108 ; PR #113 fermee sans merge (son diff ne contenait aucune occurrence d'
image-size— 633/584 de churn de lockfile sans rapport). - 2026-09-04 : #108 fermee (PR #114 merged) —
image-sizeretiree de l'arbre via overridesmetro@^0.83.8. Le blocage upstream tient toujours (first_patched_version = None,2.0.2reste la derniere publiee) ; c'est metro qui a supprime la dependance et vendore un parseur reduit sans les formats ICNS/JXL/HEIF vises. Backport sur la ligne 0.83.x le 2026-08-19 — pas besoin du bump de SDK Expo anticipe. 9 HIGH -> 1 HIGH. - 2026-07-27 : #68 merged (PR #101) — Feedback Hub integre (bouton Reglages > A propos, POST feedback.lacompagniemaximus.com app_id simpl-liste, opt-in contexte + identite Loi 25 ; client sans dependance teste via node:test).
Blockers actifs
- Essai sur appareil a faire avant le prochain APK : core 7.22.1 tourne avec native/native-stack/bottom-tabs publies contre 7.14 (deep link vers une tache, onglets, pile).
- #130 :
braces<=3.0.3 sans version corrigee. Surveillerbraces> 3.0.3 oumicromatchqui la largue. - #123 :
node-forge<=1.4.0 sans version corrigee. Surveillernode-forge> 1.4.0 ou le retrait de la dependance par@expo/code-signing-certificates/@expo/cli.