OneUptime — это платформа для мониторинга и наблюдения с открытым исходным кодом. До версии 10.0.42 реализация единого входа SAML OneUptime (App/FeatureSet/Identity/Utils/SSO.ts) разделяла проверку подписи и извлечение личности. isSignatureValid() проверяет первый элемент <Signature> в XML DOM с помощью xml-crypto, а getEmail() всегда считывает из утверждения [0] через xml2js. Злоумышленник может добавить неподписанное утверждение, содержащее произвольный идентификатор, перед законно подписанным утверждением, что приведет к обходу аутентификации.
Эта проблема исправлена в версии 10.0.42.
Показать оригинальное описание (EN)
OneUptime is an open-source monitoring and observability platform. Prior to version 10.0.42, OneUptime's SAML SSO implementation (App/FeatureSet/Identity/Utils/SSO.ts) has decoupled signature verification and identity extraction. isSignatureValid() verifies the first <Signature> element in the XML DOM using xml-crypto, while getEmail() always reads from assertion[0] via xml2js. An attacker can prepend an unsigned assertion containing an arbitrary identity before a legitimately signed assertion, resulting in authentication bypass. This issue has been patched in version 10.0.42.
Характеристики атаки
Последствия
Строка CVSS v3.1