RCE-уязвимость в NPM-пакете JsonWebToken, насчитывающем 10 млн загрузок в неделю
Дата публикации:Wed, 11 Jan 2023 13:35:37 +0300
В JavaScript-библиотеке JsonWebToken с реализацией технологии JSON Web Token (JWT) выявлена уязвимость (CVE-2022-23529), позволяющая добиться удалённого выполнения кода при верификации специально оформленного JWT-запроса. За последнюю неделю библиотека была загружена из каталога NPM более 10 млн раз.
В качестве зависимости JsonWebToken задействован в более чем 22 тысячах пакетов, в которых используется для верификации и подписывания токенов JWT, применяемых для защищённой передачи информации в формате JSON. Уязвимость устранена в выпуске JsonWebToken 9.0.0.
Уязвимость вызвана ошибкой в реализации метода verify, который принимает три параметра (токен, secretOrPublicKey и набор опций), после чего проверяет корректность токена и возвращает декодированное содержимое. В соответствии со спецификацией параметр
secretOrPublicKey может быть строкой или буфером, но в коде JsonWebToken это не учитывается и он всегда разбирается как строка с использованием метода toString().
Соответственно, если передать в secretOrPublicKey вместо строки JavaScript-объект с собственным методом toString(), то при проверке будет вызван указанный атакующим код.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=58462