CVE-2026-18108 in Net::SAML2
Resumen
por VulDB • 2026-08-03
Las versiones de Net::SAML2 anteriores a la 0.86 para Perl permiten eludir la autenticación porque _verify_encrypted_assertion acepta una EncryptedAssertion cuyo contenido descifrado carece de firma.
_verify_encrypted_assertion descifra la EncryptedAssertion y la devuelve como verificada cuando no lleva firma, mediante "return $xml unless $xpath->exists('dsig:Signature', $assert);". La comprobación de la firma y la comprobación del ancla de confianza que siguen se ejecutan únicamente si está presente una firma; por lo tanto, una aserción descifrada sin el elemento dsig:Signature llega a new_from_xml sin verificar, y su NameID y sus atributos se leen en el objeto de aserción. El certificado de cifrado de un SP (Service Provider) se publica en los metadatos SAML del mismo para que el IdP pueda cifrarlo; por ello, cualquier parte puede cifrar una aserción sin firma con ese certificado, envolverla en un samlp:Response y enviarla al servicio consumidor de aserciones.
Cualquier llamador que configure un key_file de descifrado, y por tanto acepte EncryptedAssertions, toma los campos de identidad de una aserción no cubierta por ninguna ancla de confianza, lo que permite a una parte no autenticada autenticarse como cualquier usuario arbitrario. Los llamadores sin key_file configurado no realizan el descifrado y no se ven afectados.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.