Misleading "invalid algorithm" error on malformed public key
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- javascript, node.js
- Domaine
- authentication, backend, security
Piste de recherche
Commencez à la ligne 123 de verify.js et reproduisez le cas de la clé publique malformée avec le projet lié jsonwebtoken-invalid-alg-repro en utilisant les versions de Node.js indiquées. Suivez la manière dont l’échec de crypto est géré et considérez l’issue comme terminée lorsque l’erreur crypto d’origine est exposée au lieu de l’erreur trompeuse "invalid algorithm".
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
On 9.0.0, we get the following error when trying to verify a JWT using a malformed public key:
JsonWebTokenError: invalid algorithm
In 8.x, we would get an error that would look something like:
Error: error:1E08010C:DECODER routines::unsupported
{
library: 'DECODER routines',
reason: 'unsupported',
code: 'ERR_OSSL_UNSUPPORTED'
}
The latter points us to a crypto error and suggests an issue parsing the key.
The former misleads the developer from the root issue.
The library should at least throw the original crypto error. Here is the line of code responsible for eating the error: https://github.com/auth0/node-jsonwebtoken/blob/master/verify.js#L123
Reproduction
https://github.com/Drew-Kimberly/jsonwebtoken-invalid-alg-repro
(uses dummy jwt/key from https://jwt.io)
Environment
- Version of this library used: 9.0.0
- Other relevant versions (language, server software, OS, browser): NodeJS 16.19.0 and 18.12.1
- Langage dominant
- JavaScript
- Étoiles
- 18.2k
- Forks
- 1.3k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de auth0/node-jsonwebtoken
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
auth0/node-jsonwebtoken#1042 · 1 commentaire ·
-
`jwt.sign()` callback is executed twice for "The payload already has an "..." property" errorsPeut-être pris @cobyfrombrooklyn-bot l’a pris il y a 233 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
auth0/node-jsonwebtoken#1000 · 2 commentaires · 1 réaction ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
auth0/node-jsonwebtoken#1048 ·
-
verify() resolves a string secret by attempting createPublicKey() first, costing 4x-52x on the HS* pathPeut-être pris @Hashim1999164 l’a pris il y a 27 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 65/100
auth0/node-jsonwebtoken#1046 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 10/100
auth0/node-jsonwebtoken#1034 ·
Toutes les issues de auth0/node-jsonwebtoken
Issues similaires
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
andromarces/agent-loops#886 ·
Les mainteneurs répondent en général sous 1 jour
-
bug effort:low model:light plan planner:gpt-6-1-sol tests
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
B: visual
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
FreeTubeApp/FreeTube#9929 ·
Les mainteneurs répondent en général sous 1 jour
-
🐛 Bug: `--clear-screen` not very useful (at least not for dealing with large test/error output)Ouvertestatus: in triage type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
mochajs/mocha#6428 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
supabase/supabase-js#2768 ·
Les mainteneurs répondent en général sous 1 jour