[security] deps: image-size DoS (high) -- bloque upstream, suivi #108
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/simpl-liste#108
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Detection
Detecte par le Defenseur defenseur-simpl-liste (rapport 2026-07-27), confirme par
npm auditsurmasterpost-#105.Findings
image-size-- installe1.2.1viametro > image-size, range vulnerable<=2.0.2Statut : BLOQUE UPSTREAM -- aucun fix publie
Toutes les versions publiees d'image-size sont vulnerables : le range couvre
<=2.0.2et2.0.2est la derniere version. Un override est donc inutile (aucune version safe a cibler).npm audit fixpropose un downgradereact-native@0.72.17(majeur, absurde -- on est en 0.81).Cascade transitive
image-size est la racine de ~9 findings HIGH transitifs (ils tombent tous des qu'image-size est corrige) :
metro,metro-config,metro-transform-worker,@expo/metro,@expo/metro-config,@expo/cli,expo,@react-native/community-cli-plugin,react-native,@logto/rn,react-native-android-widget.Surface reelle
image-sizesert a metro pour mesurer les dimensions des assets images au build (input = les assets du projet, de confiance). Le DoS n'est pas declenchable par un tiers externe -> surface nulle dans le produit livre. Hardening, pas incident.A faire
Re-evaluer au prochain bump du SDK Expo (qui tirera
metro/react-nativea jour) OU quandimage-sizepublie>2.0.2et que metro l'adopte. Suivi viacargo update-equivalent :npm view image-size version+ re-scan.Issue creee par
/analyse-vulnerabilite. Findings reveles par la re-resolution du lock (#105) : le scan Defenseur tournait sur unnode_modulesperime et sous-rapportait (7 au lieu de 16). Confirme parnpm auditsurmasterpost-#105. Le Defenseur ne porte pas encore l'etataccepted(rapport regenere a chaque scan). Faux positif : fermer avec commentaire. Cause racine scanner : issue dansagent-defenseurs.Re-verifie (passe "tout corriger")
Toujours bloque upstream. La derniere version publiee d'
image-sizereste2.0.2, elle-meme dans le range vulnerable (<=2.0.2) ; aucune2.0.3ni3.x.npm audit fixpropose un downgradeexpo@53.0.27(majeur, refuse -- on est en SDK 54).Reste la seule racine non corrigeable de l'arbre : elle entraine les 12 HIGH transitives restantes (
npm audit= 12 apres le fix brace-expansion + @babel/core). A lever au prochain bump du SDK Expo qui tirerametro/react-native-> uneimage-sizepatchee. Rien a faire d'ici la.Débloqué — PR #114
Le suivi demandait de re-évaluer « quand
image-sizepublie>2.0.2». Ce n'est toujours pas arrivé, et l'analyse de cette issue reste exacte sur ce point — vérifié à la source (api.github.com/advisories) : les deux advisories donnentfirst_patched_version = None, etimage-size@2.0.2(2025-04-02) reste la dernière version publiée.Le déblocage vient de l'autre branche de l'alternative, plus tôt que prévu : metro a retiré la dépendance au lieu d'attendre le correctif upstream, et l'a backporté sur la ligne de maintenance
0.83.x— pas besoin du bump de SDK Expo anticipé ici.Publié le 2026-08-19, soit sept jours après le commentaire de re-vérification du 2026-08-12 — d'où le manque au moment du passage « tout corriger ».
Diff de dépendances
0.83.7 → 0.83.8: une seule suppression,image-size, zéro ajout. Metro a vendoré le calcul de dimensions danssrc/lib/imageSize.js(« derived from image-size's format support, reduced »), et le code vendoré ne gère quebmp, gif, jpeg, ktx, png, psd, svg, tiff, webp— aucun parseur ICNS, JXL ni HEIF, exactement les trois visés par GHSA-w3rx-r6r6-pgpr et GHSA-5p2g-fcmc-qvqq. Disparition par construction, pas par renommage.La « cascade transitive » décrite ici se vérifie :
metro@0.83.3était le seul demandeur d'image-sizedans l'arbre, et 9 HIGH → 1 HIGH au retrait.PR #114 applique l'override (les 14 paquets metro ensemble, car
@expo/metro@54.2.0les épingle en version exacte). Validé :npm test11/11 etexpo export --platform androidproduit un bundle avec les PNG traités par le parseur vendoré.La HIGH restante est
browserslist, sans lien avec cette issue et préexistante sur master — pas encore suivie.Label
status:blocked→status:review.