Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en guardian de ueberauth (CVE-2026-55734)

Gravedad CVSS v4.0:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/08/2026
Última modificación:
23/10/2026

Descripción

La vulnerabilidad de asignación de recursos sin límites ni limitación en ueberauth guardian (módulo Guardian.Permissions) permite una denegación de servicio a través del agotamiento de la tabla de átomos de BEAM.<br /> <br /> Esta vulnerabilidad está asociada con el archivo de programa lib/guardian/permissions.ex y las rutinas de programa ’Elixir.Guardian.Permissions’:encode_permissions!/1, ’Elixir.Guardian.Permissions’:encode_permissions_into_claims!/2, ’Elixir.Guardian.Permissions’:do_encode_permissions!/2.<br /> <br /> El mixin Guardian.Permissions instala una función pública encode_permissions!/1 en cada módulo que utiliza Guardian.Permissions. Para cada clave del mapa proporcionado, encode_permissions!/1 llama a String.to_atom(to_string(k)) antes de que se ejecute cualquier validación. La cláusula de valor entero de do_encode_permissions!/2 entonces hace un cortocircuito directamente a la codificación sin validar la clave contra el conjunto de permisos configurado, por lo que una clave con un valor entero se interna como un átomo nuevo sin que se genere ninguna excepción. Los átomos nunca son recolectados por el recolector de basura y la tabla de átomos de BEAM es un recurso de tamaño fijo (por defecto, aproximadamente 1.048.576 entradas), por lo que cada clave única elegida por el atacante consume permanentemente una ranura. Un atacante que puede influir en un mapa de permisos que llega a encode_permissions!/1 (por ejemplo, un mapa de permisos leído de un cuerpo de solicitud y pasado a la emisión de tokens a través de encode_permissions_into_claims!/2) puede acuñar un número ilimitado de átomos y agotar la tabla de átomos, colapsando todo el nodo BEAM y cada servicio que se ejecuta en él. El hermano decode_permissions/1 no se ve afectado porque omite las claves ausentes del conjunto de permisos configurado.<br /> <br /> Este problema afecta a guardian: desde 2.0.0 antes de 2.4.1.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:ueberauth:guardian:*:*:*:*:*:*:*:* 2.0.0 (incluyendo) 2.4.1 (excluyendo)