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

Vulnerabilidad en Kirby (CVE-2025-30159)

Gravedad CVSS v4.0:
MEDIA
Tipo:
CWE-22 Limitación incorrecta de nombre de ruta a un directorio restringido (Path Traversal)
Fecha de publicación:
13/05/2025
Última modificación:
13/05/2025

Descripción

Kirby es un sistema de gestión de contenido de código abierto. Una vulnerabilidad en versiones anteriores a 3.9.8.3, 3.10.1.2 y 4.7.1 afecta a todos los sitios de Kirby que usan el asistente `snippet()` o el método `$kirby->snippet()` con un nombre de fragmento dinámico (por ejemplo, un nombre de fragmento que depende de la solicitud o de los datos del usuario). Los sitios que solo usan llamadas fijas al asistente `snippet()` o al método `$kirby->snippet()` (es decir, llamadas con una cadena simple para el nombre del fragmento) *no* se ven afectados. La falta de una comprobación de path traversal permitió a los atacantes navegar y acceder a todos los archivos del servidor accesibles para el proceso PHP, incluyendo archivos fuera del root de los fragmentos o incluso fuera de la instalación de Kirby. Se ejecutó el código PHP dentro de dichos archivos. Tales ataques primero requieren un vector de ataque en el código del sitio que es causado por nombres de fragmentos dinámicos, como `snippet('tags-' . get('tags'))`. Generalmente también requiere conocimiento de la estructura del sitio y el sistema de archivos del servidor por parte del atacante, aunque puede ser posible encontrar configuraciones vulnerables a través de métodos automatizados como fuzzing. En una configuración vulnerable, esto podría causar daños a la confidencialidad e integridad del servidor. El problema ha sido parcheado en Kirby 3.9.8.3, Kirby 3.10.1.2 y Kirby 4.7.1. En todas las versiones mencionadas, los mantenedores de Kirby han agregado una comprobación para la ruta del fragmento que garantiza que la ruta resultante esté contenida dentro del root de fragmentos configurada. Las rutas de fragmentos que apuntan fuera del root de fragmentos no se cargarán.