GitHub заблокировал SSH-ключи пользователей Git-клиентов, использующих для генерации ключей JavaScript-библиотеку keypair. Например, под блокировку попали ключи Git-клиента GitKraken. Уязвимость приводит к формированию предсказуемых RSA-ключей из-за ошибки, существенно снижающей качество энтропии при генерации случайной последовательности для ключей. Проблема устранена в выпусках keypair 1.0.4 и в GitKraken 8.0.1.
Причиной появления уязвимости стало использование в процессе формирования ключа вызова "b.putByte(String.fromCharCode(next & 0xFF))" при том, что в методе putByte ещё раз вызывался метод fromCharCode. Двойной вызов fromCharCode ("String.fromCharCode( String.fromCharCode(next & 0xFF) )") приводил к тому, что большая часть буфера c энтропией оказывалась заполнена нулями, т.е. ключ генерировался на основе "случайных" данных, на 97% состоящих из нулей.
Причиной появления уязвимости стало использование в процессе формирования ключа вызова "b.putByte(String.fromCharCode(next & 0xFF))" при том, что в методе putByte ещё раз вызывался метод fromCharCode. Двойной вызов fromCharCode ("String.fromCharCode( String.fromCharCode(next & 0xFF) )") приводил к тому, что большая часть буфера c энтропией оказывалась заполнена нулями, т.е. ключ генерировался на основе "случайных" данных, на 97% состоящих из нулей.