Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-65945-poc — PoC pour CVE-2025-65945 (Vérification incorrecte de la signature cryptographique dans node-jws) | Kitploit
Outils/GitHubGitHub/jedisct1/cve-2025-65945-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCryptographieTests d'IntrusionAuthentification
GitHubjedisct1/cve-2025-65945-poc

CVE-2025-65945-poc

PoC pour CVE-2025-65945 (Vérification incorrecte de la signature cryptographique dans node-jws)

Voir le dépôt
512il y a 8 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-65945: Contournement de la vérification de signature dans node-jws

Ceci est une preuve de concept pour un contournement de la vérification de signature dans la bibliothèque node-jws. Ce bug permet aux attaquants de forger des JWTs valides lorsque le serveur dérive des secrets HMAC à partir de données contrôlées par l'utilisateur.

Quel est le bug ?

La fonction jws.createVerify() ne valide pas qu'un secret a bien été fourni lors de l'utilisation d'algorithmes HMAC. Si votre application recherche des secrets en fonction d'un élément du JWT (comme un en-tête kid) et que cette recherche échoue, vous pourriez finir par vérifier avec un secret vide.

Un attaquant peut exploiter cela en :

  1. Envoyant un JWT avec un faux identifiant de clé qui n'existe pas dans votre base de données
  2. Signant sa charge utile malveillante avec une chaîne vide comme secret
  3. La recherche de votre serveur renvoie undefined, qui est converti en chaîne vide
  4. Les deux parties s'accordent désormais sur le 'secret' (chaîne vide), donc la signature est validée

L'attaquant peut désormais usurper l'identité de n'importe qui ou s'accorder des privilèges d'administration.

Versions affectées

  • jws 3.2.2 et antérieures
  • jws 4.0.0

Mettez à niveau vers 3.2.3+ ou 4.0.1+ pour corriger cela.

Exécution du PoC

Assurez-vous d'avoir Bun installé, puis :

root@kitploit:~
# Install the vulnerable version
bun install [email protected]

# Run the exploit
bun run exploit.js

Vous devriez voir une sortie montrant un jeton d'administration falsifié accepté comme valide.

Que fait l'exploit ?

Le PoC simule un serveur qui :

  • Possède un stockage de secrets avec quelques clés API
  • Recherche les secrets en fonction de l'en-tête kid (identifiant de clé) du JWT
  • Utilise createVerify() avec l'API de streaming

L'attaquant crée un JWT avec kid: "non-existent-key" et le signe avec un secret vide. Lorsque le serveur tente de rechercher cette clé, il obtient undefined, écrit une chaîne vide dans le flux de vérification, et le jeton falsifié passe la validation.

Tester le correctif

root@kitploit:~
# Upgrade to patched version
bun install [email protected]

# Run again - should fail now
bun run exploit.js

Avec la version corrigée, vous verrez une erreur : secret must be a string or buffer or a KeyObject. Le correctif valide que les opérations HMAC disposent d'un secret approprié avant de continuer.

Le modèle de code vulnérable

Si votre code ressemble à ceci, vous pourriez être affecté :

root@kitploit:~
const decoded = jws.decode(token);
const secret = lookupSecret(decoded.header.kid); // might return undefined!

const verifier = jws.createVerify({
  algorithm: "HS256",
  signature: token,
});

verifier.secret.write(secret); // oops
verifier.secret.end();

Références

  • Avis GitHub
  • Commit de correctif
Télécharger l’outil