CVE-2024-32962
Bypass della verifica della firma XML dovuto a una verifica impropria della firma / spoofing della firma
- Pubblicato
- 2 mag 2024
- Aggiornato
- 13 feb 2025
- Assegnazione CNA
- GitHub_M
- Evidenza osservata
- 8 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NBasso · prossimi 30 giorni
- Percentile
- 55,7%
- Data del modello
- 21 set 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
xml-crypto è una libreria per firme digitali XML e crittografia per Node.js. Nelle versioni interessate, la configurazione predefinita non verifica l'autorizzazione del firmatario, ma controlla solo la validità della firma ai sensi della sezione 3.2.2 della specifica w3 xmldsig-core-20080610. Pertanto, senza ulteriori passaggi di validazione, la configurazione predefinita consente a un attore malintenzionato di ri-firmare un documento XML, inserire il certificato in un elemento `<KeyInfo />` e superare i controlli di validazione predefiniti di `xml-crypto`. Di conseguenza, `xml-crypto` considera attendibile di default qualsiasi certificato fornito tramite l'elemento `<KeyInfo />` di un documento XML firmato digitalmente. `xml-crypto` preferisce utilizzare qualsiasi certificato fornito tramite l'elemento `<KeyInfo />` del documento XML firmato digitalmente, anche se la libreria è configurata per usare un certificato specifico (`publicCert`) ai fini della verifica della firma. Un attaccante può falsificare la verifica della firma modificando il documento XML e sostituendo la firma esistente con una firma generata con una chiave privata malevola (creata dall'attaccante) e allegando il certificato di tale chiave privata all'elemento `<KeyInfo />`. Questa vulnerabilità è una combinazione di modifiche introdotte nella versione `4.0.0` con la pull request 301 / commit `c2b83f98` ed è stata affrontata nella versione 6.0.0 con la pull request 445 / commit `21201723d`. Si consiglia agli utenti di aggiornare. Gli utenti che non possono aggiornare possono verificare il certificato estratto tramite `getCertFromKeyInfo` rispetto ai certificati attendibili prima di accettare i risultati della validazione, oppure impostare `getCertFromKeyInfo` di `xml-crypto` a `() => undefined` forzando `xml-crypto` a utilizzare un `publicCert` o una `privateKey` configurati esplicitamente per la verifica della firma.
Fonti
1Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.