Saltar al contenido
CVE-2026-63190 Fuente: CVE.org Publicada · sin explotación confirmada

Vulnerabilidad de falta de autenticación en scripts de depuración de FearlessCMS que exponen operaciones del sistema de archivos y XSS

fearlessgeekmedia · FearlessCMS · Publicada en CVE.org el 28-10-2026 · Última actualización: 09-11-2026

Descripción

FearlessCMS es un sistema de gestión de `content` basado en archivos planos, centrado en la simplicidad y de código abierto. En versiones anteriores a 0.1.4, cinco scripts PHP de depuración/prueba ubicados en `admin/` realizan operaciones privilegiadas sin verificaciones de autenticación `isLoggedIn()`, sin protección contra falsificación de solicitudes entre sitios (CSRF) ni una validación adecuada de `path`. En el servidor de desarrollo integrado de PHP, incluida la implementación Docker predeterminada, `router.php` verifica un prefijo de URI de administración no normalizado mientras el sistema de archivos resuelve los segmentos con punto, por lo que `/./admin/` omite el control de inicio de sesión de administración y ejecuta esos scripts directamente. En `admin/debug_save_flow.php`, los valores `path` y `content` controlados por el atacante llegan a `file_put_contents`, lo que permite escrituras arbitrarias de archivos `.md` dentro de `content`/ o fuera de él mediante recorrido de directorios (path traversal) en `path`, lo que posibilita la desfiguración del sitio y JavaScript almacenado en páginas públicas; la salida de `print_r($_POST)` sin escape mediante `htmlspecialchars` también provoca cross-site scripting reflejado. El parámetro `path` de `admin/debug_content.php` llega a `scandir()`, `file_get_contents()` y `posix_getpwuid()`, lo que permite la enumeración arbitraria de directorios y la lectura de archivos `.md` que exponen rutas absolutas, propietarios, permisos, hashes y vistas previas de `content`. El endpoint `admin/preview-handler.php` acepta `content` y `title` en JSON y escribe archivos enumerables en `content/_preview/`, lo que permite cross-site scripting almacenado y el agotamiento del disco. El endpoint `admin/testdebug.php` agrega contenido a `admin/testdebug.log` sin autenticación, lo que también permite el agotamiento del disco. El script `admin/test_redirect.php` expone un artefacto de prueba, pero escapa sus entradas y no constituye en sí mismo un punto de XSS. La ejecución de scripts almacenados puede robar sesiones y comprometer a los administradores cuando visualizan el `content` afectado. Las lecturas y escrituras se ejecutan con los privilegios de PHP; la implementación probada ejecuta PHP como root, lo que amplifica el impacto en el sistema de archivos. Este problema se corrigió en la versión 0.1.4.

Qué hacer

Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.

Versiones afectadas

  • FearlessCMS Afectadas: < 0.1.4

Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.

Referencias

Ver el texto original en inglés (CVE.org)

FearlessCMS: Unauthenticated debug scripts expose filesystem operations and XSS

FearlessCMS is a flat-file `content` management system centered on simplicity and open source. Prior to version 0.1.4, five debug/test PHP scripts under `admin/` perform privileged operations without `isLoggedIn()` authentication checks, CSRF protection or adequate `path` validation. On PHP's built-in development server, including the default Docker deployment, `router.php` checks an unnormalized admin URI prefix while the filesystem resolves dot segments, so `/./admin/` bypasses the admin login gate and executes those scripts directly. In `admin/debug_save_flow.php`, attacker-controlled `path` and `content` reach `file_put_contents` for arbitrary `.md` writes under `content`/ or outside it through `path` traversal, enabling site defacement and stored JavaScript in public pages; `print_r($_POST)` output without `htmlspecialchars` escaping also causes reflected cross-site scripting. The `admin/debug_content.php` `path` parameter reaches `scandir()`, `file_get_contents()` and `posix_getpwuid()`, permitting arbitrary directory enumeration and `.md` file reads that expose absolute paths, ownership, permissions, hashes and `content` previews. The `admin/preview-handler.php` endpoint accepts JSON `content` and `title` and writes enumerable files under `content/_preview/`, enabling stored cross-site scripting and disk exhaustion. The `admin/testdebug.php` endpoint appends to `admin/testdebug.log` without authentication, also enabling disk exhaustion. The `admin/test_redirect.php` script exposes a test artifact but escapes its inputs and is not itself an XSS sink. Stored script execution can steal sessions and compromise administrators when they view affected `content`. Reads and writes execute with PHP's privileges; the tested deployment runs PHP as root, amplifying filesystem impact. This issue is fixed in version 0.1.4.

Recibe el boletín cuando CISA agregue vulnerabilidades nuevas

Te escribimos solo cuando CISA agrega vulnerabilidades nuevas, ya traducidas: cada día que haya, o en un resumen los lunes. Confirmas por correo y te das de baja con un clic.

Frecuencia