Они обнаружили уязвимость в библиотеке алгоритмов SHA-3.

уязвимость

При эксплуатации эти недостатки могут позволить злоумышленникам получить несанкционированный доступ к конфиденциальной информации или вообще вызвать проблемы.

Обнаружена уязвимость (уже указан в CVE-2022-37454) en реализация криптографической хеш-функции SHA-3 (Keccak), предлагаемый в пакете XKCP (расширенный пакет кода Keccak).

Выявленная уязвимость может вызвать переполнение буфера при обработке сформированных данных. Проблема связана с ошибкой в ​​коде конкретной реализации SHA-3, а не с уязвимостью в самом алгоритме.

Эль Пакет ХККП рекламируется как официальная реализация SHA-3, разработанная с помощью команды разработчиков Keccak, и используется как основа для функций для работы с SHA-3 на различных языках программирования (например, код XKCP используется в модуле Python hashlib, пакете Ruby дайджест-sha3 и функциях PHP hash_*).

По словам исследователя, выявившего проблему, может использовать уязвимость для нарушения криптографических свойств хеш-функции и найти первый и второй прообразы, а также определить коллизии.

Причина ошибки сегментации заключается в том, что скрипты будут пытаться записать в буфер больше данных, чем он может вместить. Такая уязвимость известна как переполнение буфера, которую OWASP описывает как «вероятно, самую известную форму уязвимости безопасности программного обеспечения».

Небольшой вариант кода вызовет бесконечный цикл: просто замените 4294967295 на 4294967296. Обратите внимание на сходство с CVE-2019-8741, еще одной обнаруженной мной уязвимостью, которая затронула прошивку более 1.400 миллиарда устройств Apple, что также вызвало бесконечный цикл.

Также, анонсировано создание прототипа эксплойта, que позволяет добиться выполнения кода при вычислении хеша из специально созданного файла. Уязвимость также потенциально может быть использована для атаки на алгоритмы проверки цифровой подписи с использованием SHA-3 (например, Ed448). Ожидается, что подробности о методах атаки будут опубликованы позднее, после общего устранения уязвимости.

Такое поведение не должно происходить в «безопасных» языках, таких как Python и PHP, поскольку они проверяют, что все операции чтения и записи находятся в границах буфера. Однако проблема в том, что уязвимость присутствует в базовом «небезопасном» языке C...

Еще неясно, как уязвимость влияет на существующие приложения на практике, так как для того, чтобы проблема проявилась в коде, необходимо использовать циклические хеш-вычисления на блоках, а размер одного из обрабатываемых блоков должен быть около 4 ГБ (не менее 2^32 — 200 байт).

При обработке входных данных сразу (без последовательного вычисления хеша по частям) проблема не возникает. В качестве более простого метода защиты предлагается ограничить максимальный размер данных, задействованных в одной итерации вычисления хэша.

Уязвимый код был опубликован в январе 2011 года, поэтому поиск этой уязвимости занял более десяти лет. Кажется, трудно найти уязвимости в криптографических реализациях, даже если они играют решающую роль в общей безопасности системы. (Возможно, люди даже не ищут такие уязвимости, поскольку ни эта уязвимость в XKCP, ни упомянутая выше уязвимость Apple не подходят для каких-либо программ вознаграждения за обнаружение ошибок!)

Уязвимость происходит из-за ошибки в блочной обработке входных данных. Из-за некорректного сравнения значений с типом «int» определяется некорректный размер невыполненных данных, что приводит к записи очереди из выделенного буфера.

В частности, упоминается, что при сравнении выражение «partialBlock + экземпляр-> byteIOIndex«, что при больших значениях составных частей приводило к целочисленному переполнению. Кроме того, в коде было неправильное приведение типа "(unsigned int)(dataByteLen - i)", вызывающее переполнение на системах с 64-битным типом size_t.

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.