[security] deps: image-size DoS (high) -- bloque upstream, suivi #108

Open
opened 2026-08-12 00:36:09 +00:00 by maximus · 1 comment
Owner

Detection

Detecte par le Defenseur defenseur-simpl-liste (rapport 2026-07-27), confirme par npm audit sur master post-#105.

Findings

  • [HIGH] image-size -- installe 1.2.1 via metro > image-size, range vulnerable <=2.0.2

Statut : BLOQUE UPSTREAM -- aucun fix publie

Toutes les versions publiees d'image-size sont vulnerables : le range couvre <=2.0.2 et 2.0.2 est la derniere version. Un override est donc inutile (aucune version safe a cibler). npm audit fix propose un downgrade react-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-size sert 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-native a jour) OU quand image-size publie >2.0.2 et que metro l'adopte. Suivi via cargo 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 un node_modules perime et sous-rapportait (7 au lieu de 16). Confirme par npm audit sur master post-#105. Le Defenseur ne porte pas encore l'etat accepted (rapport regenere a chaque scan). Faux positif : fermer avec commentaire. Cause racine scanner : issue dans agent-defenseurs.

## Detection Detecte par le Defenseur **defenseur-simpl-liste** (rapport 2026-07-27), confirme par `npm audit` sur `master` post-#105. ## Findings - **[HIGH]** `image-size` -- installe `1.2.1` via `metro > image-size`, range vulnerable `<=2.0.2` - [GHSA-w3rx-r6r6-pgpr](https://github.com/advisories/GHSA-w3rx-r6r6-pgpr) -- ICNS parser infinite-loop DoS - [GHSA-5p2g-fcmc-qvqq](https://github.com/advisories/GHSA-5p2g-fcmc-qvqq) -- JXL / HEIF parser infinite-loop DoS ## Statut : BLOQUE UPSTREAM -- aucun fix publie **Toutes** les versions publiees d'image-size sont vulnerables : le range couvre `<=2.0.2` et `2.0.2` est la derniere version. Un override est donc inutile (aucune version safe a cibler). `npm audit fix` propose un downgrade `react-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-size` sert 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-native` a jour) OU quand `image-size` publie `>2.0.2` et que metro l'adopte. Suivi via `cargo 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 un `node_modules` perime et sous-rapportait (7 au lieu de 16). Confirme par `npm audit` sur `master` post-#105. Le Defenseur ne porte pas encore l'etat `accepted` (rapport regenere a chaque scan). Faux positif : fermer avec commentaire. Cause racine scanner : issue dans `agent-defenseurs`._
maximus added the
status:blocked
type:security
source:defenseur
labels 2026-08-12 00:36:09 +00:00
Author
Owner

Re-verifie (passe "tout corriger")

Toujours bloque upstream. La derniere version publiee d'image-size reste 2.0.2, elle-meme dans le range vulnerable (<=2.0.2) ; aucune 2.0.3 ni 3.x. npm audit fix propose un downgrade expo@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 tirera metro/react-native -> une image-size patchee. Rien a faire d'ici la.

## Re-verifie (passe "tout corriger") Toujours **bloque upstream**. La derniere version publiee d'`image-size` reste `2.0.2`, elle-meme dans le range vulnerable (`<=2.0.2`) ; aucune `2.0.3` ni `3.x`. `npm audit fix` propose un downgrade `expo@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 tirera `metro`/`react-native` -> une `image-size` patchee. Rien a faire d'ici la.
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-liste#108
No description provided.