CVE-2023-0401
CVE-2023-0401: отказ в обслуживании при проверке PKCS#7 в OpenSSL
Проверьте приложения, которые проверяют недоверенные PKCS#7/S/MIME или timestamp-данные через OpenSSL. При отсутствии реализации используемого digest алгоритма ошибочная проверка может вызвать сбой процесса; обновите библиотеку до исправленного пакета.
Кому нужно проверить
Разработчикам приложений на OpenSSL, обработчикам S/MIME, PKCS#7 и timestamp данных, а также администраторам серверных систем с FIPS/provider конфигурациями. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Недоверенные PKCS#7 данные могут вызвать NULL dereference и аварийное завершение приложения, что приводит к отказу в обслуживании. Риск зависит от использования соответствующих API и конфигурации digest provider.
Затронутые версии
OpenSSL 3.0.0–3.0.7. Уязвимость достигается при проверке PKCS#7 signed или signedAndEnveloped данных, когда известен алгоритм хеша, но его реализация недоступна (например, конфигурация FIPS без нужного provider или отсутствие legacy provider). TLS-реализация OpenSSL сама эти функции не вызывает; уязвимы приложения, вызывающие их для недоверенных данных. OpenSSL 1.1.1 и 1.0.2 не затронуты.
Исправленные версии
Исправлено в OpenSSL 3.0.8. Для дистрибутивов применяйте исправленные пакеты поставщика: Canonical указывает backport пакеты OpenSSL 3.0.x для поддерживаемых выпусков Ubuntu; сверяйте статус конкретного релиза и не полагайтесь только на upstream номер.
Что сделать
- 1Найдите вызовы d2i_PKCS7(), d2i_PKCS7_bio(), d2i_PKCS7_fp() и проверки S/MIME/timestamp в приложениях; отдельно оцените, поступают ли данные от недоверенных пользователей.
- 2Обновите OpenSSL 3.0 до 3.0.8 upstream или установите исправленный пакет дистрибутива с подтверждённым backport. Учитывайте, что обновление динамической библиотеки может требовать перезапуска приложений.
- 3Проверьте конфигурацию FIPS и providers: необходимые алгоритмы должны быть доступны в соответствии с требованиями приложения. Не включайте legacy provider без оценки криптографической политики.
- 4После обновления протестируйте обработку валидных документов и ошибочных входов в контролируемой тестовой среде, перезапустите сервисы и наблюдайте за аварийными завершениями.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.