xml-crypto - это библиотека цифровой подписи и шифрования XML для Node.js. В затронутых версиях конфигурация по умолчанию не проверяет авто…
xml-crypto - это библиотека цифровой подписи и шифрования XML для Node.js. В затронутых версиях конфигурация по умолчанию не проверяет авторизацию подписывающего, она только проверяет действительность подписи в соответствии с разделом 3.2.2 спецификации w3 xmldsig-core-20080610. Таким образом, без дополнительных шагов валидации конфигурация по умолчанию позволяет злоумышленнику повторно подписать XML-документ, поместить сертификат в элемент `<KeyInfo />` и пройти проверки по умолчанию в `xml-crypto`. В результате `xml-crypto` по умолчанию доверяет любому сертификату, предоставленному через цифровой подписанный XML-документ `<KeyInfo />`. `xml-crypto` предпочитает использовать любой сертификат, предоставленный через цифровой подписанный XML-документ `<KeyInfo />`, даже если библиотека была настроена на использование конкретного сертификата (`publicCert`) для целей проверки подписи. Злоумышленник может подделать проверку подписи, изменив XML-документ и заменив существующую подпись на подпись, сгенерированную с помощью злонамеренного закрытого ключа (созданного нападающим), и прикрепив сертификат этого закрытого ключа к элементу `<KeyInfo />`. Эта уязвимость является комбинацией изменений, введенных в `4.0.0` по запросу на вытягивание 301 / коммитом `c2b83f98` и была устранена в версии 6.0.0 с запросом на вытягивание 445 / коммитом `21201723d`. Пользователям рекомендуется обновиться. Пользователям, которые не могут обновиться, рекомендуется либо проверять сертификат, извлеченный с помощью `getCertFromKeyInfo`, относительно доверенных сертификатов перед тем, как принимать результаты валидации, либо установить `getCertFromKeyInfo` в `xml-crypto` на `() => undefined`, заставив `xml-crypto` использовать явно настроенные `publicCert` или `privateKey` для проверки подписи.
Продукт не проверяет или некорректно проверяет криптографическую подпись данных.
https://cwe.mitre.org/data/definitions/347.html →Открыть в коллекции CWE →Злоумышленник способен эффективно расшифровывать данные, не зная ключа дешифрования, если целевая система раскрывает информацию о том, возникла ли ошибка дополнения при расшифровке зашифртекста. Целевая система, утечку такой информации, становится оракулом дополнения, а злоумышленник может использовать этот оракул для эффективной расшифровки данных без знания ключа дешифрования, выполнив в среднем 128*b обращений к оракулу дополнения (где b — количество байт в блоке зашифртекста). Помимо расшифровки, злоумышленник способен также формировать корректные зашифртексты (то есть выполнять шифрование) с использованием оракула дополнения, не зная ключа шифрования.
https://capec.mitre.org/data/definitions/463.html →Открыть в коллекции CAPEC →Злоумышленник эксплуатирует криптографическую слабость в реализации алгоритма проверки подписи для генерации действительной подписи без знания ключа.
https://capec.mitre.org/data/definitions/475.html →Открыть в коллекции CAPEC →