veilletech.fr
31 août Feed du jour
#02 SÉCURITÉ Faille

@fastify/jwt : la clé globale écrase la vôtre

Une option locale que la globale écrase : la séparation n'était qu'apparente.

Dans @fastify/jwt avant la 10.2.2, la clé passée à request.jwtVerify({ key }) est écrasée par le secret configuré globalement sur le plugin. Une route qui exigeait une clé de vérification distincte accepte donc les jetons signés avec la clé globale. NVD note la faille 8.1 HIGH.

1 min de lecturevidéo 1:14
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Ce que ça change
  3. Ce qu'il faut faire
  4. À retenir

Ce qui se passe

CVE-2026-18500 touche @fastify/jwt dans toutes ses versions antérieures à 10.2.2. Le plugin permet à une route de vérifier un jeton avec une clé qui n'est pas le secret global de l'application :

JavaScript
await request.jwtVerify({ key: cleAdmin })

La fusion des options applique la clé globale après celle donnée à l'appel. Le secret global l'emporte, et l'intention de la route est annulée sans erreur ni avertissement.

Référence Valeur
Identifiant CVE-2026-18500
Avis GitHub GHSA-j4cx-787j-xjqg
Score NVD 8.1 HIGH
Vecteur CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Faiblesse CWE-347
Corrigé dans 10.2.2

Ce que ça change

Le motif visé est répandu : une clé par domaine — utilisateur, administration, locataire, service à service. Avec le défaut, cette frontière n'existe plus : tout porteur d'un jeton signé par la clé globale — donc n'importe quel compte authentifié normalement — passe sur une route qui attendait une autre signature. Le vecteur le dit : PR:L, un privilège faible suffit ; C:H/I:H, confidentialité et intégrité tombent ensemble.

Une application qui n'emploie qu'une seule clé n'est pas exposée : il n'y a aucune séparation à contourner.

Ce qu'il faut faire

Terminal
npm install @fastify/jwt@10.2.2

Puis, si des clés distinctes coexistent, chercher dans les journaux d'authentification les jetons de la clé globale arrivés sur des routes à clé spécifique. Toute trace suspecte impose une rotation des clés concernées.

Source : HOL — CVE-2026-18500 · GHSA-j4cx-787j-xjqg