GitHub revokes duplicate SSH auth keys generated by keypair library

The GitHub sign in screen on a smartphone
(Image credit: Shutterstock)

GitHub has revoked all SSH keys used in a popular Git client after discovering the software the client used duplicated those keys.

Developer Axosoft warned GitHub about a vulnerability in a dependency of its popular GUI client GitKraken, according to GitHub CSO, Mike Hanley. GitHub found that an underlying issue with a dependency, called keypair, resulted in the GitKraken client generating weak SSH keys.

The issue was flagged to GitHub on September 28 and affects versions 7.6.x, 7.7.x, and 8.0.0 of the GitKraken client.

GitKraken disclosed the flaw, saying a team at the company discovered a bug in the open source SSH key generation library that was implemented in versions 7.6.x, 7.7.x, 8.0.0, released between 12 May and 27 September 2021.

“This flaw resulted in a weaker form of public SSH keys being created. Weak keys are created with low entropy, meaning there is a higher probability of key duplication,” said the GitKraken team in a statement.

"A bug in the pseudo-random number generator used by keypair versions up to and including 1.0.3 could allow for weak RSA key generation. This could enable an attacker to decrypt confidential messages or gain authorized access to an account belonging to the victim. We recommend replacing any RSA keys that were generated using keypair version 1.0.3 or earlier," said a Keypair advisory.


Reinvention starts with cloud migration of your data infrastructure

Explore why the most efficient way forward is data-driven


The GitKraken engineering team has fixed this issue as of version 8.0.1 by replacing the previous SSH key generation library with a new one, according to the disclosure.

Hanley said GitHub also investigated the possibility that weakly generated keys used on GitHub came from other third-party clients and integrators also using this vulnerable library.

“The nature of this vulnerability prevents us from identifying all possible weak SSH keys produced by this library and vulnerable clients that used it. Out of an abundance of caution, we’ve also revoked other potentially weak keys associated with these scenarios and blocked their use,” he added.

Hanley added that GitHub will directly notify users whose keys have been revoked. “This was not the result of a compromise, data breach, or other data exposure event of GitHub or our systems, but rather an issue with a library commonly used to generate SSH keys for use with GitHub,” he said.

Hanley recommended developers review SSH keys linked to any GitHub account and rotate those that could have been generated using the vulnerable/insecure library. GitHub posted a tutorial for this process here.

GitHub Enterprise Server deployment administrators review the SSH keys added to their instances by reviewing public_key.create actions in the site admin dashboard audit log.

Rene Millman

Rene Millman is a freelance writer and broadcaster who covers cybersecurity, AI, IoT, and the cloud. He also works as a contributing analyst at GigaOm and has previously worked as an analyst for Gartner covering the infrastructure market. He has made numerous television appearances to give his views and expertise on technology trends and companies that affect and shape our lives. You can follow Rene Millman on Twitter.