Forge accepts a certificate whose serial number is zero

Aperta
#1,147 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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, node.js

Direzione di ricerca

Start with the verify.js reproduction and trace pki.verifyCertificateChain, using the attached test.zip certificate pair. Check the RFC 5280 and errata requirements for certificate serial numbers; done means the provided chain verification returns failure for a zero serial number.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Forge accepts a certificate whose serial number is zero which is forbidden by RFC 5280 and its errata. The certificate should be rejected according to Sec. 4.1.2.2 in RFC 5280 "The serial number MUST be a positive integer assigned by the CA to each certificate" and the errata https://github.com/openssl/openssl/pull/3200 "The serial number MUST be a positive non-zero integer assigned by the CA to each certificate".

To Reproduce:

const { pki } = require('node-forge');
const fs = require('fs');
const [, , caPath, certPath] = process.argv;
const caCert = pki.certificateFromPem(fs.readFileSync(caPath, 'utf8'));
const serverCert = pki.certificateFromPem(fs.readFileSync(certPath, 'utf8'));
const caStore = pki.createCaStore([caCert]);
console.log(pki.verifyCertificateChain(caStore, [serverCert]));

node verify.js ca.pem seed.pem

Expected behavior:
Verification failed.

test.zip

Lingua principale
JavaScript
Stelle
5.4k
Fork
874
Merge medio
3m
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di digitalbazaar/forge

Tutte le issue di digitalbazaar/forge

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.