Vulnérabilités dans l'image Docker officielle

Bonjour ! J’ai récemment téléchargé l’image Docker officielle de Discourse et l’ai analysée avec Trivy (un scanner de sécurité et de vulnérabilités). Le résultat révèle plusieurs vulnérabilités :

$ trivy image --vuln-type library discourse/base:release
...
Node.js (node-pkg)

Total : 19 (INCONNU : 0, FAIBLE : 1, MOYEN : 1, ÉLEVÉ : 15, CRITIQUE : 2)

┌─────────────────────────────────────┬─────────────────────┬──────────┬───────────────────┬────────────────────────────┬──────────────────────────────────────────────────────────────┐
│               Bibliothèque          │    Vulnérabilité    │ Sévérité │ Version installée │       Version corrigée       │                            Titre                             │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ ansi-html (package.json)            │ CVE-2021-23424      │ ÉLEVÉE   │ 0.0.7             │ 0.0.8                      │ nodejs-ansi-html : ReDoS via une chaîne personnalisée        │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2021-23424                   │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ ansi-regex (package.json)           │ CVE-2021-3807       │          │ 3.0.0             │ 3.0.1, 4.1.1, 5.0.1, 6.0.1 │ nodejs-ansi-regex : Déni de service par expression régulière │
│                                     │                     │          │                   │                            │ (ReDoS) lors de la correspondance de codes d'échappement ANSI│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2021-3807                    │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          ├───────────────────┤                            │                                                              │
│                                     │                     │          │ 4.1.0             │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ clean-css (package.json)            │ GHSA-wxhq-pm8v-cw75 │ FAIBLE   │ 3.4.28            │ 4.1.11                     │ Déni de service par expression régulière dans clean-css      │
│                                     │                     │          │                   │                            │ https://github.com/advisories/GHSA-wxhq-pm8v-cw75            │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ engine.io (package.json)            │ CVE-2023-31125      │ MOYENNE  │ 6.2.1             │ 6.4.2                      │ Exception non gérée dans engine.io                           │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2023-31125                   │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ http-cache-semantics (package.json) │ CVE-2022-25881      │ ÉLEVÉE   │ 4.1.0             │ 4.1.1                      │ Vulnérabilité de déni de service par expression régulière (ReDoS)│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-25881                   │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ json5 (package.json)                │ CVE-2022-46175      │          │ 0.5.1             │ 1.0.2, 2.2.2               │ json5 : Pollution du prototype dans JSON5 via la méthode Parse│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-46175                   │
│                                     │                     │          ├───────────────────┤                            │                                                              │
│                                     │                     │          │ 1.0.1             │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ loader-utils (package.json)         │ CVE-2022-37601      │ CRITIQUE │ 2.0.2             │ 1.4.1, 2.0.3               │ loader-utils : pollution du prototype dans la fonction parseQuery dans parseQuery.js│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-37601                   │
│                                     ├─────────────────────┼──────────┤                   ├────────────────────────────┼──────────────────────────────────────────────────────────────┤
│                                     │ CVE-2022-37599      │ ÉLEVÉE   │                   │ 3.2.1, 2.0.4, 1.4.2        │ Une faille de déni de service par expression régulière (ReDoS) a été détectée dans Funct...│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-37599                   │
│                                     ├─────────────────────┤          │                   │                            ├──────────────────────────────────────────────────────────────┤
│                                     │ CVE-2022-37603      │          │                   │                            │ loader-utils : Déni de service par expression régulière      │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-37603                   │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ minimatch (package.json)            │ CVE-2016-10540      │          │ 0.2.14            │ 3.0.2                      │ Minimatch est un utilitaire de correspondance minimale qui fonctionne en convertissant glob...│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2016-10540                   │
│                                     ├─────────────────────┤          │                   ├────────────────────────────┼──────────────────────────────────────────────────────────────┤
│                                     │ CVE-2022-3517       │          │                   │ 3.0.5                      │ ReDoS via la fonction braceExpand                            │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-3517                    │
│                                     ├─────────────────────┤          │                   ├────────────────────────────┼──────────────────────────────────────────────────────────────┤
│                                     │ NSWG-ECO-118        │          │                   │ >=3.0.2                    │ Déni de service par expression régulière                     │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ taffydb (package.json)              │ CVE-2019-10790      │          │ 2.6.2             │                            │ TaffyDB peut permettre l'accès à n'importe quel élément de données dans la BD│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2019-10790                   │
│                                     │                     │          ├───────────────────┼────────────────────────────┤                                                              │
│                                     │                     │          │ 2.7.3             │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ underscore (package.json)           │ CVE-2021-23358      │ CRITIQUE │ 1.3.3             │ 1.12.1                     │ nodejs-underscore : Exécution arbitraire de code via la fonction template│
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2021-23358                   │
└─────────────────────────────────────┴─────────────────────┴──────────┴───────────────────┴────────────────────────────┴──────────────────────────────────────────────────────────────┘
2023-05-16T18:33:20.715+0200	INFO	Le résultat du tableau inclut uniquement les noms de fichiers des packages. Utilisez l'option '--format json' pour obtenir le chemin complet vers le fichier du package.
...

Il s’agit d’un extrait des vulnérabilités signalées, la liste complète incluant plus de 20 éléments :

CVE-2015-9284, CVE-2016-10540, CVE-2019-10790, CVE-2020-26235, CVE-2021-23358, CVE-2021-23424, CVE-2021-32810, CVE-2021-3807, CVE-2022-23639, CVE-2022-24713, CVE-2022-25881, CVE-2022-32149, CVE-2022-3517, CVE-2022-37599, CVE-2022-37601, CVE-2022-37603, CVE-2022-46175, CVE-2023-31125, GHSA-2qv5-7mw5-j3cg, GHSA-f85w-wvc7-crwc, GHSA-mc8h-8q98-g5hr, GHSA-rc23-xxgq-x27g, GHSA-wxhq-pm8v-cw75, NSWG-ECO-118

Quel est l’état d’avancement concernant ces vulnérabilités ? Prévoyez-vous de les corriger dans une prochaine version ?

Merci beaucoup par avance !

Salut @jcarmona, nos propres outils ont également détecté ces paquets NPM « vulnérables ». La grande majorité concerne les outils de build/développement. Pour les quelques-uns qui sont des dépendances transitives de l’application JavaScript côté client de Discourse, nous sommes convaincus que les vulnérabilités ne sont pas exploitables.

Cela dit, nous travaillons constamment à la mise à niveau de nos dépendances, nous espérons donc les mettre toutes à niveau dans un avenir pas trop lointain.