node-forge (Forge) Versionen vor 1.4.1 akzeptieren ein Zertifikat als CA, wenn es eine gefälschte Erweiterung unter den veralteten OIDs 2.5.29.10 oder 2.5.29.13 enthält, die vor der echten basicConstraints-Erweiterung platziert ist. Ein Angreifer, der ein Zertifikat einer von der Anwendung vertrauten CA erhält, die Erweiterungen aus Zertifikatsignierungsanfragen übernimmt, kann Zertifikate für beliebige Namen ausstellen und sich als Server oder Client ausgeben. Die Ausnutzung ist komplex und setzt diese vertrauenswürdige CA voraus; ein öffentlicher Proof of Concept existiert.
Digital Bazaar · node-forge
Forge (node-forge) ist eine JavaScript-Implementierung von TLS. Ein entfernter, nicht authentisierter Peer kann einen TLS-Record eines anderen Inhaltstyps mitten in einer fragmentierten Handshake-Nachricht senden, was in process() eine nicht abgefangene TypeError auslöst. Dadurch bricht die betroffene Verbindung oder der Node.js-Prozess, der sie hostet, ab; die Auswirkung beschränkt sich auf die Verfügbarkeit (CVSS 7.5, A:H). Das Risiko ist bei Node.js-Diensten am höchsten, die forge-TLS verwenden und Verbindungen von nicht vertrauenswürdigen Peers annehmen.
Digital Bazaar · Forge (node-forge)
Forge (node-forge) ist eine JavaScript-Implementierung von TLS. Vor Version 1.4.1 verarbeitete die TLS-Record-Verarbeitung in forge.tls.createConnection() jeden empfangenen Record rekursiv, sodass ein einzelner Eingabeblock mit Tausenden kleiner Records (zum Beispiel Heartbeat-Records) den JavaScript-Call-Stack erschöpft. Der Angriff erfordert keine Authentifizierung und kann von jedem Peer ausgelöst werden, der sich mit einem Forge-TLS-Server oder mit einem Server verbindet, zu dem ein Forge-TLS-Client eine Verbindung aufbaut. In Node.js-Anwendungen, die process() aus einem Socket-Data-Handler aufrufen, beendet die nicht abgefangene Exception den Prozess und unterbricht die darüber laufenden Verbindungen.
Digital Bazaar · Forge (node-forge)
Forge (node-forge) ist eine JavaScript-Bibliothek, die TLS und Kryptografie implementiert. Versionen vor 1.4.1 akzeptieren für PKCS#12-MAC oder passwortbasierte Verschlüsselung eine Iterationsanzahl von null, wodurch der abgeleitete Schlüssel unabhängig von Passwort und Salt konstant ist. Ein Angreifer kann PKCS#12-/PFX-Dateien oder verschlüsselte private Schlüssel verändern und ohne Kenntnis des Passworts einen gültigen MAC erzeugen, sodass eine Anwendung das Zertifikat und den Schlüssel des Angreifers akzeptieren kann. Für den Angriff ist keine Authentifizierung nötig, er betrifft jedoch nur Anwendungen, die solche Dateien aus nicht vertrauenswürdigen Quellen parsen; die Vertraulichkeit ist nicht betroffen.
Digital Bazaar · Forge (node-forge)
Forge (node-forge) ist eine JavaScript-Implementierung von Transport Layer Security. Der PEM-Parser verwendet reguläre Ausdrücke, deren Verarbeitungszeit bei fehlerhaften Eingaben polynomiell wächst, sodass ein nicht authentifizierter Angreifer den Event Loop von Node.js mit einer langen, speziell gestalteten Nachricht blockieren kann. Betroffen sind Anwendungen, die nicht vertrauenswürdige PEM-Daten an node-forge übergeben, zum Beispiel Dienste, die hochgeladene Zertifikate oder Schlüssel akzeptieren.
Digital Bazaar · Forge (node-forge)