Forge doesn't validate version field when parsing RSA PRIVATE KEY PEM
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript
- Ambito
- cryptography, security
Direzione di ricerca
Start with the parse_key.js reproduction and the forge.pki.privateKeyFromPem entry point, using invalid.key to observe the current behavior. The change is complete when an RSA PRIVATE KEY with a version other than 0 or 1 is rejected, and the reproduction no longer prints a parsed private key.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
fc8017 shows: "An RSA private key should be represented with the ASN.1 type RSAPrivateKey: RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, --e
privateExponent INTEGER, -- d
prime1 INTEGER, --p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
},
and, for version, version is the version number, for compatibility with future revisions of this document. It SHALL be 0 for this version of the document, unless multi-prime is used; in which case, it SHALL be 1." However, here forge accepts a key with version number 17.
To Reproduce:
Steps to reproduce the behavior:
const forge = require('node-forge');
const fs = require('fs');
const filePath = process.argv[2];
const keyPem = fs.readFileSync(filePath, 'utf8');
const privateKey = forge.pki.privateKeyFromPem(keyPem);
console.dir(privateKey, { depth: null, colors: true });
node parse_key.js invalid.key
Expected behavior
Since the version number is not 0 or 1, it should be rejected.
- Lingua principale
- JavaScript
- Stelle
- 5.4k
- Fork
- 874
- Merge medio
- 3m
- PR unite (30g)
- 6
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di digitalbazaar/forge
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
digitalbazaar/forge#1170 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
digitalbazaar/forge#1147 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
digitalbazaar/forge#1146 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
digitalbazaar/forge#1145 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
digitalbazaar/forge#1144 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di digitalbazaar/forge
Issue simili
-
stringify escapes leading digits in pseudo-class arguments (:nth-child(1) becomes :nth-child(\31 ))Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
getgrav/grav-plugin-form#664 ·
-
bug web-ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
jenkinsci/jenkins#27705 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
maproulette/maproulette-frontend#2978 ·
I maintainer di solito rispondono entro 1 giorno