Уязвимость в библиотеке с основной реализацией алгоритма SHA-3
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В реализации криптографической хэш-функции SHA-3 (Keccak), предлагаемой в пакете XKCP (eXtended Keccak Code Package), выявлена уязвимость (CVE-2022-37454), которая может привести к переполнению буфера в процессе обработки определённо оформленных данных. Проблема вызвана ошибкой в коде конкретной реализации SHA-3, а не уязвимостью в самом алгоритме. Пакет XKCP преподносится как официальная реализация SHA-3, развивается при участии команды разработчиков Keccak и используется в качестве основы в функциях для работы с SHA-3 в различных языках программирования (например, код XKCP используется в Python-модуле hashlib, Ruby-пакете digest-sha3 и PHP-функциях hash_*).
По заявлению исследователя, выявившего проблему, ему удалось использовать уязвимость для нарушения криптографических свойств хэш-функции и нахождения первого и второго прообраза, а также определения коллизий. Кроме того, заявлено о создании прототипа эксплоита, позволяющего добиться выполнения кода при вычислении хэша специально оформленного файла. Потенциально уязвимость также может быть использована для атак на алгоритмы проверки цифровых подписей, использующих SHA-3 (например, Ed448). Подробности методов проведения атак планируется опубликовать позднее, после повсеместного устранения уязвимости.
Насколько уязвимость затрагивает существующие приложения на практике пока не ясно, так как для проявления проблемы в коде должно применяться цикличное вычисление хэша блоками и один из обрабатываемых блоков должен иметь размер около 4 ГБ (не менее 2^32 - 200 байт). При обработке входных данных разом (без последовательного вычисления хэша частями) проблема не проявляется. В качестве наиболее простого метода защиты предлагается ограничить максимальный размер данных, участвующих в одной итерации вычисления хэша.
Уязвимость вызвана ошибкой при блочной обработке входных данных. Из-за некорректного сравнения значений с типом "int" определяется неверный размер ожидающих обработки данных, что приводит к записи хвоста за пределы выделенного буфера. В частности, при сравнении использовалось выражение "partialBlock + instance->byteIOIndex", которое при больших значениях составных частей приводило к целочисленному переполнению. Кроме того, в коде присутствовало неверное приведение типов "(unsigned int)(dataByteLen - i)", приводившее к переполнению на системах с 64-разрядным типом size_t.
Пример кода, приводящего к переполнению:
import hashlib
h = hashlib.sha3_224()
m1 = b"\x00" * 1;
m2 = b"\x00" * 4294967295;
h.update(m1)
h.update(m2)
print(h.hexdigest())
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://mouha.be/sha-3-buffer-...)
- OpenNews: Предложен метод определения коллизий в SHA-1, пригодный для атаки на PGP
- OpenNews: Google продемонстрировал первую успешную атаку на алгоритм хеширования SHA-1
- OpenNews: Представлена хеш-функция BLAKE2, претендующая на роль высокопроизводительной замены MD5 и SHA1
- OpenNews: SHA-3 присвоен статус федерального стандарта США
- OpenNews: Выбран финальный алгоритм для SHA-3
Похожие новости:
- Эксперимент с определением паролей пользователей 70% Wi-Fi сетей Тель-Aвива
- HashiCorp временно приостановил приём изменений от сообщества в проекте Terraform
- Выпуск эталонной реализации криптографической хеш-функции BLAKE3 1.0
- [Информационная безопасность, PostgreSQL, Go] Избавляемся от паролей в репе с кодом с помощью HashiCorp Vault Dynamic Secrets
- [Java, Kotlin] Создаем свою инспекцию для IDEA
- [IT-инфраструктура, Amazon Web Services, Облачные сервисы, Serverless] Terraform в AWS: несколько аккаунтов и другие хитрости (перевод)
- [Git, Agile, DevOps] Приглашаем Вас принять участие в GitLab Connect EMEA — 25 Mapта
- [IT-инфраструктура, DevOps, Kubernetes] Инъекция секретов из Vault в поды используя сайдкары Kubernetes (перевод)
- [Системное администрирование, Системное программирование, DevOps] Режим высокой доступности HashiCorp Vault (HA) (перевод)
- [Информационная безопасность] Взлом хешей с помощью HashCat
Теги для поиска: #_sha3, #_hash, #_keccak
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 14:22
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В реализации криптографической хэш-функции SHA-3 (Keccak), предлагаемой в пакете XKCP (eXtended Keccak Code Package), выявлена уязвимость (CVE-2022-37454), которая может привести к переполнению буфера в процессе обработки определённо оформленных данных. Проблема вызвана ошибкой в коде конкретной реализации SHA-3, а не уязвимостью в самом алгоритме. Пакет XKCP преподносится как официальная реализация SHA-3, развивается при участии команды разработчиков Keccak и используется в качестве основы в функциях для работы с SHA-3 в различных языках программирования (например, код XKCP используется в Python-модуле hashlib, Ruby-пакете digest-sha3 и PHP-функциях hash_*). По заявлению исследователя, выявившего проблему, ему удалось использовать уязвимость для нарушения криптографических свойств хэш-функции и нахождения первого и второго прообраза, а также определения коллизий. Кроме того, заявлено о создании прототипа эксплоита, позволяющего добиться выполнения кода при вычислении хэша специально оформленного файла. Потенциально уязвимость также может быть использована для атак на алгоритмы проверки цифровых подписей, использующих SHA-3 (например, Ed448). Подробности методов проведения атак планируется опубликовать позднее, после повсеместного устранения уязвимости. Насколько уязвимость затрагивает существующие приложения на практике пока не ясно, так как для проявления проблемы в коде должно применяться цикличное вычисление хэша блоками и один из обрабатываемых блоков должен иметь размер около 4 ГБ (не менее 2^32 - 200 байт). При обработке входных данных разом (без последовательного вычисления хэша частями) проблема не проявляется. В качестве наиболее простого метода защиты предлагается ограничить максимальный размер данных, участвующих в одной итерации вычисления хэша. Уязвимость вызвана ошибкой при блочной обработке входных данных. Из-за некорректного сравнения значений с типом "int" определяется неверный размер ожидающих обработки данных, что приводит к записи хвоста за пределы выделенного буфера. В частности, при сравнении использовалось выражение "partialBlock + instance->byteIOIndex", которое при больших значениях составных частей приводило к целочисленному переполнению. Кроме того, в коде присутствовало неверное приведение типов "(unsigned int)(dataByteLen - i)", приводившее к переполнению на системах с 64-разрядным типом size_t. Пример кода, приводящего к переполнению: import hashlib
h = hashlib.sha3_224() m1 = b"\x00" * 1; m2 = b"\x00" * 4294967295; h.update(m1) h.update(m2) print(h.hexdigest()) =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 14:22
Часовой пояс: UTC + 5