ГлавнаяБаза уязвимостей БДУ → BDU:2023-06929
7.8высокая

BDU:2023-06929 (CVE-2023-4421)

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

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

Затрагиваемое ПО и версии
Red Hat Enterprise Linux (8)Debian GNU/Linux (10)Debian GNU/Linux (11)Debian GNU/Linux (12)Red Hat Enterprise Linux (9)Network Security Services (до 3.61)
Способ устранения

Использование рекомендаций:
Для 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, примите это решение и скопируйте, используя операцию свободного побочного канала.

Оценка CVSS
Балл7.8 — высокая опасность
Источники и патчи
https://access.redhat.com/security/cve/cve-2023-4421https://hg.mozilla.org/projects/nss/rev/fc05574c739947d615ab0b2b2b564f01c922eccdhttps://phabricator.services.mozilla.com/D99843https://bugzilla.redhat.com/show_bug.cgi?id=2238677https://people.redhat.com/~hkario/marvin/
Проверьте безопасность своего сайта и почты → Полная проверка домена