VU#725167: Уязвимости подделки подписи в реализациях RSA-PKCS и ED25519 в node-forge
В широко используемой библиотеке JavaScript node-forge существуют две критические уязвимости в проверке криптографических подписей. Эти недостатки позволяют злоумышленникам подделывать подписи RSA (PKCS#1 v1.5) и Ed25519 при определенных обстоятельствах. Уязвимость RSA, CVE-2026-33894, возникает из-за принятия не канонических кодировок ASN.1 и недостаточного размера заполнения при проверке подписи. Это позволяет злоумышленникам создавать подписи, которые node-forge проверяет, а стандартные библиотеки отклоняют, особенно при низких публичных показателях степени. Уязвимость Ed25519, CVE-2026-33895, связана с неспособностью обеспечить каноничность скаляров, что позволяет принимать подписи с не каноническими скалярами. Это подрывает уникальность подписи и позволяет проводить атаки подмены. Затронутые версии варьируются от 0.1.2 до 1.3.3 для RSA и от 0.7.4 до 1.3.3 для Ed25519. Основное последствие — возможность для злоумышленников обойти аутентификацию, подписание кода или проверку токенов. Приложения, использующие API проверки node-forge по умолчанию, включая популярные библиотеки JOSE, потенциально подвержены риску. Эксплуатация проста и может происходить по сети. Версия 1.4.0, выпущенная 05.04.2026, полностью устраняет эти проблемы, обеспечивая строгую каноническую проверку как для подписей RSA, так и для Ed25519. Пользователям настоятельно рекомендуется обновиться до этой версии для устранения уязвимостей. Если немедленное обновление невозможно, рекомендуемые меры включают аудит мест вызовов и откат к нативной криптографии Node.js.