Ad

CVE-2026-18089

HIGH CVSS 3.1: 7,5 EPSS 0.18%
Обновлено 6 августа 2026
Timlegge
Параметр Значение
CVSS 7,5 (HIGH)
Уязвимые версии до 0.86
Устранено в версии 0.86
Тип уязвимости CWE-295 (Неправильная проверка сертификата), CWE-347 (Некорректная проверка подписи)
Поставщик Timlegge
Публичный эксплойт Нет

Версии Net::SAML2 до 0.86 для Perl позволяют обходить аутентификацию SAML путем проверки ответов по встроенному в ответ сертификату вverify_xml, когда привязка доверия не настроена. verify_xml в Net::SAML2::Role::VerifyXML запускает «return if !$anchors && !$cacert;» как только проверка XML::Sig завершится успешно, и эта проверка использует сертификат X.509, взятый из собственного элемента dsig:KeyInfo/dsig:X509Certificate ответа, поэтому незакрепленный ответ проверяется только по ключу, который он несет. Binding::POST объявляет cacert как необязательный параметр Maybe[Str] без значения по умолчанию, поэтому привязка POST, созданная без него, использует этот путь, а _verify_encrypted_assertion возвращает таким же образом раньше с «return $xml, если только $cacert;». Любой вызывающий объект, который создает Binding::POST или вызывает Assertion->new_from_xml без аргумента cacert, cert_text или привязки, принимает ответ, подписанный сгенерированным злоумышленником ключом, самозаверяющий сертификат которого встроен в этот ответ, аутентифицируя произвольное утверждение.

Показать оригинальное описание (EN)

Net::SAML2 versions before 0.86 for Perl allow SAML authentication bypass by verifying responses against the response-embedded certificate in verify_xml when no trust anchor is configured. verify_xml in Net::SAML2::Role::VerifyXML runs "return if !$anchors && !$cacert;" as soon as the XML::Sig check succeeds, and that check uses the X.509 certificate taken from the response's own dsig:KeyInfo/dsig:X509Certificate element, so an unanchored response is checked only against the key it carries. Binding::POST declares cacert as an optional Maybe[Str] with no default, so a POST binding built without one takes that path, and _verify_encrypted_assertion returns early the same way with "return $xml unless $cacert;". Any caller that constructs Binding::POST or calls Assertion->new_from_xml without a cacert, cert_text, or anchors argument accepts a response signed by an attacker generated key whose self-signed certificate is embedded in that response, authenticating an arbitrary assertion.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Высокое
Полная модификация данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v3.1

Уязвимые продукты 1

Конфигурация От (включительно) До (исключительно)
Timlegge Net\
cpe:2.3:a:timlegge:net\:\:saml2:*:*:*:*:*:perl:*:*
0.86