Уязвимость утечки временных данных при обмене ключами RSA в TLS до версии Go 1.20
Описание
В Go обмен ключами RSA в TLS использовал библиотеку math/big
, которая не работает в постоянном времени. Для предотвращения атак по времени применялось маскирование RSA (RSA blinding), однако анализ показывает, что это могло быть не полностью эффективным. В частности, удаление заполнения PKCS#1 могло приводить к утечке временных данных, что, в свою очередь, могло использоваться для восстановления битов сеансового ключа. Начиная с Go 1.20, библиотека crypto/tls
перешла на полностью постоянную во времени реализацию RSA, которая, как считается, не имеет временных побочных каналов.
Затронутые версии ПО
- Go версии до 1.20
Тип уязвимости
Утечка информации через временные данные
Ссылки
- Issue Tracking
- Issue Tracking
- Mailing ListRelease Notes
- Third Party Advisory
- Vendor Advisory
- Issue Tracking
- Issue Tracking
- Mailing ListRelease Notes
- Third Party Advisory
- Vendor Advisory
Уязвимые конфигурации
EPSS
7.5 High
CVSS3
Дефекты
Связанные уязвимости
Before Go 1.20, the RSA based TLS key exchanges used the math/big library, which is not constant time. RSA blinding was applied to prevent timing attacks, but analysis shows this may not have been fully effective. In particular it appears as if the removal of PKCS#1 padding may leak timing information, which in turn could be used to recover session key bits. In Go 1.20, the crypto/tls library switched to a fully constant time RSA implementation, which we do not believe exhibits any timing side channels.
Before Go 1.20, the RSA based TLS key exchanges used the math/big libr ...
Before Go 1.20, the RSA based TLS key exchanges used the math/big library, which is not constant time. RSA blinding was applied to prevent timing attacks, but analysis shows this may not have been fully effective. In particular it appears as if the removal of PKCS#1 padding may leak timing information, which in turn could be used to recover session key bits. In Go 1.20, the crypto/tls library switched to a fully constant time RSA implementation, which we do not believe exhibits any timing side channels.
ELSA-2024-2272: containernetworking-plugins security update (MODERATE)
EPSS
7.5 High
CVSS3