GitHub hat die SSH-Schlüssel von Benutzern von Git-Clients blockiert, die die JavaScript-Bibliothek keypair zur Generierung der Schlüssel verwenden. Beispielsweise wurden die Schlüssel des Git-Clients GitKraken blockiert. Die Sicherheitsanfälligkeit führt zur Bildung von vorhersehbaren RSA-Schlüsseln aufgrund eines Fehlers, der die Qualität der Entropie bei der Generierung einer Zufallsfolge für Schlüssel erheblich beeinträchtigt. Das Problem wurde in den Versionen von keypair 1.0.4 und GitKraken 8.0.1 behoben.
Der Grund für die Sicherheitsanfälligkeit war die Verwendung des Aufrufs „b.putByte(String.fromCharCode(next & 0xFF))“ während der Schlüsselerzeugung, wobei die Methode putByte zusätzlich die Methode fromCharCode erneut aufrief. Der doppelte Aufruf von fromCharCode („String.fromCharCode( String.fromCharCode(next & 0xFF) )“) führte dazu, dass ein Großteil des Entropie-Puffers mit Nullen gefüllt wurde, d.h. der Schlüssel wurde auf der Basis von „zufälligen“ Daten generiert, die zu 97 % aus Nullen bestanden.
Quelle: opennet.ru
