Критическая уязвимость в 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, где проблема уже исправлена.

Что на самом деле видят провайдер, VPN-сервис и сайт при веб-сёрфинге юзера

Пётр Васильченко на Хабре разобрал, какие данные о пользователе получают сайт, провайдер, DNS-резолвер и VPN-сервис. Главный вывод прост: HTTPS защищает содержимое трафика, но плащ-невидимку не выдаёт. При корректно настроенном HTTPS провайдер не может прочитать адрес конкретной статьи, поисковый запрос, пароль или текст сообщения.

Зато ему доступны IP-адрес назначения, время и продолжительность соединения, объём трафика, а при определённых условиях — DNS-запросы и доменное имя из SNI.

Как объясняет исследователь, технологии защищённого DNS и ECH скрывают часть этих сведений, но метаданные никуда не испаряются.

Сам сайт знает гораздо больше. Он получает полный путь страницы, параметры URL, разрешённые браузером cookies, данные авторизации и сведения, которые пользователь вводит добровольно.

 

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

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

 

Cookies, аккаунты и браузерный отпечаток при этом остаются на месте. Можно сменить IP хоть десять раз, но вход в привычную учётную запись мгновенно заканчивает игру в шпиона.

 

Режим инкогнито тоже не превращает браузер в секретный бункер. Он отделяет временную сессию и удаляет её данные после закрытия окон, однако сайты продолжают видеть запросы, а провайдер — сетевую активность.

HTTPS скрывает содержимое, защищённый DNS — запросы доменных имён, VPN — домашний IP, а инкогнито не сохраняет локальную историю сессии. Поэтому сначала стоит решить, какие данные и от кого нужно спрятать.

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