CVE-2026-18568 in XML::Siginformación

Resumen

por VulDB • 2026-08-03

Las versiones de XML::Sig desde la 0.29 hasta antes de la 0.72 para Perl permiten eludir la verificación de firmas porque `verify` devuelve verdadero cuando se omiten todas las firmas antes de realizar cualquier comprobación criptográfica.

En lib/XML/Sig.pm, `verify` cuenta los elementos `//dsig:Signature` en `$numsigs` e itera sobre ellos; sin embargo, dos caminos llevan a un `next` antes de que se ejecute cualquier verificación del resumen (digest) o la clave: una referencia con atributo URI (`SignedInfo/Reference/@URI`) que no resuelve ningún elemento mientras `$numsigs` es mayor que 1 y, cuando está configurado `id_attr`, una referencia que no coincide con el ID solicitado. El bucle no registra nada sobre lo que se ha verificado; por tanto, si todas las firmas siguen uno de esos caminos, el control llega al incondicional `return 1` que finaliza la función verify. Basta con dos elementos Signature cuyo URI de Reference nombre un ID que ningún elemento posee, o bien un solo elemento así combinado con `id_attr`.

Cualquier llamador que pase XML no confiable a `verify` puede recibir un valor verdadero para un documento en el que no se ha verificado ni digest alguno ni valor de firma; esto no cambia la situación si se usa como ancla de confianza una `cert` o `cert_text`, ya que no se ejecuta ninguna comprobación de clave. Las versiones hasta la 0.28 utilizan una función verify basada en XML::XPath, que carece de dicha omisión y no están afectadas.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

CPANSec

Reservar

2026-08-02

Divulgación

2026-08-03

Moderación

aceptado

Artículo

VDB-385606

CPE

listo

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Do you know our Splunk app?

Download it now for free!