Критическая уязвимость в sha.js ставит под удар миллионы веб-приложений

Критическая уязвимость в sha.js ставит под удар миллионы веб-приложений

Критическая уязвимость в sha.js ставит под удар миллионы веб-приложений

В популярной JavaScript-библиотеке sha.js обнаружили критическую уязвимость, которая может поставить под угрозу безопасность миллионов приложений. Этот модуль используется для реализации алгоритмов SHA и еженедельно скачивается более 14 миллионов раз, так что проблема затрагивает огромное число проектов на Node.js и в браузере.

Баг получил идентификатор CVE-2025-9288 и высокий балл по CVSS — 9,1 из 10. Ошибка связана с тем, что библиотека не проверяла корректность входных данных. В итоге злоумышленник может управлять тем, как вычисляется хеш, и добиваться крайне опасных последствий — от коллизий до восстановления приватных ключей.

Какие атаки возможны:

  • Сброс состояния хеша. Через специальные конструкции наподобие { length: -x } можно «отмотать» внутреннее состояние и даже превратить помеченный хеш в непомеченный, лишив его защиты.
  • Коллизии и неверные значения. Поддельный ввод вроде { length: buf.length, ...buf, 0: buf[0] + 256 } может дать тот же хеш, что и оригинальный буфер, хотя данные различаются. Это приводит к расхождениям с другими библиотеками, например, bn.js.
  • Отказ в обслуживании. Ввод вида { length: '1e99' } заставляет функцию зависнуть, фактически обрушивая приложение.
  • Криптографическая катастрофа. Самый опасный сценарий связан с генерацией nonce через хеширование. Если разные значения дают одинаковый хеш, но интерпретируются по-разному, можно восстановить приватные ключи.

Разработчикам настоятельно рекомендуют как можно скорее обновиться до версии 2.4.12, где проблема уже исправлена.

Подпишитесь на новости

Claude Code удалил 116 ГБ и сообщил, что файлы выглядят нормально

Пользователь Windows сообщил, что Claude Code при уборке временных файлов удалил около 116 ГБ данных из его домашней директории. Затем агент заверил, что остановил команду и все выглядит целым. По описанию инцидента, удаление продолжалось еще примерно 50 минут.

В отчете на GitHub пользователь рассказывает, что работал над анализом для соревнования Kaggle.

Основная сессия запустила субагента, который решил очистить собственные временные файлы, но сформировал лишнюю команду рекурсивного удаления.

Целью стала домашняя директория, указанная коротким именем Windows формата 8.3. Автор предполагает, что защитная проверка могла не распознать такой вариант пути. Точный механизм отказа защиты и режим разрешений остаются неизвестными.

Через 120 секунд задача автоматически перешла в фон. Агент запросил остановку и получил сообщение об успехе, однако, судя по описанным изменениям файловой системы, удаление продолжалось. Вероятное объяснение — дочерний процесс пережил остановку задачи.

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

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

Особенно неприятна в этой истории уверенность агента. Наличие папки еще не означает наличие файлов.

RSS: Новости на портале Anti-Malware.ru