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

exploitDog

fstec логотип

BDU:2023-06929

Опубликовано: 13 сент. 2023
Источник: fstec
CVSS3: 6.5
CVSS2: 7.8
EPSS Низкий

Описание

Уязвимость реализации стандарта PKCS#1 v1.5 набора библиотек NSS (Network Security Services) связана с недостаточной защитой служебных данных в результате расхождения во времени. Эксплуатация уязвимости позволяет нарушителю, действующему удаленно, реализовать атаку Блейхенбахера (Bleichenbacher) или атаку Марвина (Marvin)

Вендор

Red Hat Inc.
Сообщество свободного программного обеспечения
Mozilla Corp.

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

Red Hat Enterprise Linux
Debian GNU/Linux
Network Security Services

Версия ПО

8 (Red Hat Enterprise Linux)
10 (Debian GNU/Linux)
11 (Debian GNU/Linux)
12 (Debian GNU/Linux)
9 (Red Hat Enterprise Linux)
до 3.61 (Network Security Services)

Тип ПО

Операционная система
Прикладное ПО информационных систем

Операционные системы и аппаратные платформы

Red Hat Inc. Red Hat Enterprise Linux 8
Сообщество свободного программного обеспечения Debian GNU/Linux 10
Сообщество свободного программного обеспечения Debian GNU/Linux 11
Сообщество свободного программного обеспечения Debian GNU/Linux 12
Red Hat Inc. Red Hat Enterprise Linux 9

Уровень опасности уязвимости

Высокий уровень опасности (базовая оценка CVSS 2.0 составляет 7,8)
Средний уровень опасности (базовая оценка CVSS 3.0 составляет 6,5)

Возможные меры по устранению уязвимости

Использование рекомендаций:
Для NSS (Network Security Services):
https://hg.mozilla.org/projects/nss/rev/fc05574c739947d615ab0b2b2b564f01c922eccd
Для программных продуктов Red Hat Inc.:
https://access.redhat.com/security/cve/cve-2023-4421
Для Debian GNU/Linux:
https://security-tracker.debian.org/tracker/CVE-2023-4421
Компенсирующие меры:
1. Используйте SHA-256 для хеширования частного показателя степени, закодированного как целое число с прямым порядком байтов, в строку той же длины, что и общедоступный модуль. Держите это значение в секрете. (это просто оптимизация, чтобы реализации не приходилось сериализовать ключ снова и снова);
2. Проверьте длину ввода в соответствии с первым шагом https://tools.ietf.org/html/rfc8017#section-7.2.2 ;
3. При наличии зашифрованного текста используйте SHA-256 HMAC(key=hash_from_step1, text=ciphertext) для генерации ключа деривации ключа;
4. Используйте SHA-256 HMAC с ключом и двухбайтовым итератором с прямым порядком байтов, объединенным со строкой байтов «длина» с представлением с прямым порядком байтов 2048 (0x0800) в качестве длины сгенерированной строки в битах. Повторите этот PRF 8 раз, чтобы сгенерировать строку длиной 256 байт;
5. Инициализируйте длину синтетического сообщения равной 0;
6. Разделите вывод PRF на 2-байтовые строки, преобразуйте в целые числа с прямым порядком байтов, обнулите старшие биты, чтобы они имели ту же длину в битах, что и длина октета максимально приемлемого размера сообщения (k-11), выберете последнее целое число не больше (k-11) или оставьте равным 0, если ни одно целое число не меньше (k-11); этот выбор необходимо выполнить с использованием свободных операторов побочного канала;
7. Используйте SHA-256 HMAC с ключом и двухбайтовым итератором с прямым порядком байтов, объединенным со строкой байтов «сообщение» с представлением с прямым порядком байтов k*8;
Используйте этот PRF для генерации k байт вывода (обрезайте вправо последний вызов HMAC, если количество сгенерированных байтов не кратно размеру вывода SHA-256);
8. Выполните расшифровку RSA, как описано в шаге 2 раздела 7.2.2 rfc8017.
9. Проверьте заполнение сообщения EM, как описано в шаге 3 раздела 7.2.2 rfc8017, но вместо вывода «ошибки дешифрования» верните последние l байт PRF «сообщения», когда l — выбранная синтетическая длина сообщения, используя «длина» PRF, примите это решение и скопируйте, используя операцию свободного побочного канала.

Статус уязвимости

Подтверждена производителем

Наличие эксплойта

Данные уточняются

Информация об устранении

Уязвимость устранена

Идентификаторы других систем описаний уязвимостей

EPSS

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

6.5 Medium

CVSS3

7.8 High

CVSS2

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

CVSS3: 6.5
ubuntu
около 2 лет назад

The NSS code used for checking PKCS#1 v1.5 was leaking information useful in mounting Bleichenbacher-like attacks. Both the overall correctness of the padding as well as the length of the encrypted message was leaking through timing side-channel. By sending large number of attacker-selected ciphertexts, the attacker would be able to decrypt a previously intercepted PKCS#1 v1.5 ciphertext (for example, to decrypt a TLS session that used RSA key exchange), or forge a signature using the victim's key. The issue was fixed by implementing the implicit rejection algorithm, in which the NSS returns a deterministic random message in case invalid padding is detected, as proposed in the Marvin Attack paper. This vulnerability affects NSS < 3.61.

CVSS3: 6.5
redhat
больше 2 лет назад

The NSS code used for checking PKCS#1 v1.5 was leaking information useful in mounting Bleichenbacher-like attacks. Both the overall correctness of the padding as well as the length of the encrypted message was leaking through timing side-channel. By sending large number of attacker-selected ciphertexts, the attacker would be able to decrypt a previously intercepted PKCS#1 v1.5 ciphertext (for example, to decrypt a TLS session that used RSA key exchange), or forge a signature using the victim's key. The issue was fixed by implementing the implicit rejection algorithm, in which the NSS returns a deterministic random message in case invalid padding is detected, as proposed in the Marvin Attack paper. This vulnerability affects NSS < 3.61.

CVSS3: 6.5
nvd
около 2 лет назад

The NSS code used for checking PKCS#1 v1.5 was leaking information useful in mounting Bleichenbacher-like attacks. Both the overall correctness of the padding as well as the length of the encrypted message was leaking through timing side-channel. By sending large number of attacker-selected ciphertexts, the attacker would be able to decrypt a previously intercepted PKCS#1 v1.5 ciphertext (for example, to decrypt a TLS session that used RSA key exchange), or forge a signature using the victim's key. The issue was fixed by implementing the implicit rejection algorithm, in which the NSS returns a deterministic random message in case invalid padding is detected, as proposed in the Marvin Attack paper. This vulnerability affects NSS < 3.61.

CVSS3: 6.5
debian
около 2 лет назад

The NSS code used for checking PKCS#1 v1.5 was leaking information use ...

CVSS3: 6.5
github
около 2 лет назад

The NSS code used for checking PKCS#1 v1.5 was leaking information useful in mounting Bleichenbacher-like attacks. Both the overall correctness of the padding as well as the length of the encrypted message was leaking through timing side-channel. By sending large number of attacker-selected ciphertexts, the attacker would be able to decrypt a previously intercepted PKCS#1 v1.5 ciphertext (for example, to decrypt a TLS session that used RSA key exchange), or forge a signature using the victim's key. The issue was fixed by implementing the implicit rejection algorithm, in which the NSS returns a deterministic random message in case invalid padding is detected, as proposed in the Marvin Attack paper. This vulnerability affects NSS < 3.61.

EPSS

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

6.5 Medium

CVSS3

7.8 High

CVSS2