Уязвимость CVE-2024-9355 в Golang FIPS: обнуление буфера и подмена HMAC-сумм
В реализации криптографического режима FIPS для Golang (на базе OpenSSL) обнаружена уязвимость среднего уровня опасности (CVSS 6.5). Атакующий может вызвать возврат неинициализированной длины буфера с обнулённым содержимым, что позволяет подделать результат сравнения HMAC-сумм и получить предсказуемый ключ. Затрагивает продукты Red Hat на базе RHEL 7, 8, 9, Satellite Client 6 и ряд сопутствующих сервисов.
Подробности
Проблема связана с обработкой буферов в режиме FIPS. Злоумышленник может случайным образом спровоцировать ситуацию, при которой функция вернёт переменную длины неинициализированного буфера с обнулённым содержимым. Уязвимость получила оценку CVSS 6.5 (MEDIUM). Основные сценарии эксплуатации: - Подмена результата сравнения HMAC. Если атакующий способен подставить обнулённый буфер вместо заранее вычисленной суммы, возможно ложное совпадение неэквивалентных хешей при сравнении доверенной вычисленной HMAC-суммы с недоверенным входным значением. - Обнуление производного ключа. Существует вероятность заставить производный ключ принять значение из одних нулей вместо непредсказуемой величины, что критически снижает стойкость криптосхемы. - Последствия для Go TLS. Указанные эффекты могут иметь отложенные последствия для стека Go TLS, ослабляя гарантии аутентификации и целостности соединений. Затронуты следующие продукты Red Hat: Red Hat Enterprise Linux 7 Extended Lifecycle Support, RHEL 8, RHEL 8.6 Advanced Mission Critical Update Support, RHEL 8.6 Extended Update Support Long-Life Add-On, RHEL 8.8 Telecommunications Update Service, RHEL 8.8 Update Services for SAP Solutions, RHEL 9, RHEL 9.2 Update Services for SAP Solutions, RHEL 9.4 Extended Update Support, RHEL 9.6 Extended Update Support, Satellite Client 6 для RHEL 10 и RHEL 8/9, Streams for Apache Kafka 2.9.0, а также Red Hat Trusted Artifact Signer 1.3.Что делать
- Отслеживать выпуск обновлений безопасности Red Hat для затронутых версий RHEL, Satellite Client 6, Streams for Apache Kafka и Trusted Artifact Signer и оперативно их устанавливать. - Обновить используемые сборки Golang, скомпилированные с поддержкой FIPS/OpenSSL, до версий, содержащих исправление. - До момента установки патчей рассмотреть компенсирующие меры: ограничить доступ недоверенных сторон к операциям сравнения HMAC и генерации производных ключей, усилить мониторинг аномалий в TLS-соединениях, использующих FIPS-режим. - Провести проверку конфигураций, где Go-приложения работают в режиме FIPS, и убедиться, что во входных данных HMAC-проверок не могут появляться буферы нулевой длины или полностью обнулённое содержимое. Итог: CVE-2024-9355 демонстрирует, насколько чувствительны FIPS-реализации к ошибкам работы с памятью. Хотя уязвимость оценивается как средняя по критичности, её потенциальное влияние на доверие к HMAC-проверкам и производным ключам требует внимательного отношения. Администраторам систем на базе RHEL и связанных продуктов Red Hat следует приоритизировать установку исправлений.Источник: CVE Project (cvelistV5)
