Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-72p8-v4hg-v45p

Опубликовано: 01 июн. 2022
Источник: github
Github: Прошло ревью
CVSS3: 6.5

Описание

Weak private key generation in SSH.NET

During an X25519 key exchange, the client’s private is generated with System.Random:

var rnd = new Random(); _privateKey = new byte[MontgomeryCurve25519.PrivateKeySizeInBytes]; rnd.NextBytes(_privateKey);

Source: KeyExchangeECCurve25519.cs
Source commit: https://github.com/sshnet/SSH.NET/commit/b58a11c0da55da1f5bad46faad2e9b71b7cb35b3

System.Random is not a cryptographically secure random number generator, it must therefore not be used for cryptographic purposes.

Impact

When establishing an SSH connection to a remote host, during the X25519 key exchange, the private key is generated with a weak random number generator whose seed can be bruteforced. This allows an attacker able to eavesdrop the communications to decrypt them.

Workarounds

To ensure you're not affected by this vulnerability, you can disable support for curve25519-sha256 and curve25519-sha256@libssh.org key exchange algorithms by invoking the following method before a connection is established:

private static void RemoveUnsecureKEX(BaseClient client) { client.ConnectionInfo.KeyExchangeAlgorithms.Remove("curve25519-sha256"); client.ConnectionInfo.KeyExchangeAlgorithms.Remove("curve25519-sha256@libssh.org"); }

Thanks

This issue was initially reported by Siemens AG, Digital Industries, shortly followed by @yaumn-synacktiv.

Пакеты

Наименование

SSH.NET

nuget
Затронутые версииВерсия исправления

< 2020.0.2

2020.0.2

EPSS

Процентиль: 54%
0.00319
Низкий

6.5 Medium

CVSS3

Дефекты

CWE-330
CWE-338

Связанные уязвимости

CVSS3: 6.5
nvd
больше 3 лет назад

SSH.NET is a Secure Shell (SSH) library for .NET. In versions 2020.0.0 and 2020.0.1, during an `X25519` key exchange, the client’s private key is generated with `System.Random`. `System.Random` is not a cryptographically secure random number generator, it must therefore not be used for cryptographic purposes. When establishing an SSH connection to a remote host, during the X25519 key exchange, the private key is generated with a weak random number generator whose seed can be brute forced. This allows an attacker who is able to eavesdrop on the communications to decrypt them. Version 2020.0.2 contains a patch for this issue. As a workaround, one may disable support for `curve25519-sha256` and `curve25519-sha256@libssh.org` key exchange algorithms.

EPSS

Процентиль: 54%
0.00319
Низкий

6.5 Medium

CVSS3

Дефекты

CWE-330
CWE-338