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

Vulnerabilidad en Directus (CVE-2025-27089)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
19/02/2025
Última modificación:
27/02/2025

Descripción

Directus es un tablero de API y aplicaciones en tiempo real para administrar el contenido de la base de datos SQL. En las versiones afectadas, si hay dos políticas superpuestas para la acción `` `update'' que permiten el acceso a diferentes campos, en lugar de verificar correctamente los permisos de acceso contra el elemento que solicitan para el usuario puede actualizar el superconjunto de campos permitidos por cualquiera de las políticas. Por ejemplo: Tenga una política que permita actualizar el acceso a `field_a` si el` id == 1` y una política que permite el acceso de actualización a `field_b` si el` id == 2`. El usuario con ambas políticas puede actualizar tanto `Field_A` y` Field_B` para los elementos con IDS `1` y` 2`. Antes de V11, si a un usuario se le permitía actualizar un elemento, se le permitía actualizar los campos que el permiso único, que se aplicaba a ese elemento, enumeró. Con los permisos superpuestos, esto ya no es tan claro y la unión de los campos podría no ser los campos que el usuario puede actualizar para ese elemento específico. La solución que introduce este PR es evaluar los permisos para cada campo que el usuario intenta actualizar en la consulta DB de ValidateItemAccess, en lugar de verificar solo el acceso al elemento en su conjunto. Esto se hace, en lugar de devolver el valor de campo real, devolver un indicador que indica si el usuario tiene acceso a ese campo. Esto utiliza el mismo mecanismo de caso/cuando se utiliza para eliminar el campo no permitido que esté en el núcleo del motor de permisos. Como resultado, para cada elemento para el que se valida el acceso, el resultado esperado es un elemento que tiene 1 o NULL para todos los campos "solicitados" en lugar de cualquiera de los valores de campo reales. Estos resultados no son útiles para nada más que verificar los permisos de acceso a nivel de campo. La comprobación final de ValidateItemAccess puede fallar si el número de elementos no coincide con el número de elementos para el que se verifica el acceso (es decir, el usuario no tiene acceso al elemento) o si no todos los campos pasados ??tienen Permisos de acceso para cualquiera de los artículos devueltos. Esta es una vulnerabilidad que permite actualizar el acceso a los campos no deseados, lo que puede impactar el campo de contraseña para las cuentas de los usuarios. Esto se ha abordado en la versión 11.1.2 y se recomienda a todos los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:monospace:directus:*:*:*:*:*:node.js:*:* 11.0.0 (incluyendo) 11.1.2 (excluyendo)