Descripción
FearlessCMS es un sistema de gestión de contenidos basado en archivos planos, centrado en la simplicidad y el código abierto. En la versión 0.1.2b y anteriores, un administrador autenticado puede establecer una URL arbitraria de repositorio Git mediante admin/updater-handler.php y activar perform_update, que pasa la URL a update.sh. El actualizador clona el repositorio y reemplaza los directorios activos plugins/, admin/ e includes/ sin verificar la identidad, las firmas ni el contenido del repositorio. Debido a que router.php permite que el servidor de desarrollo de PHP ejecute archivos PHP existentes en plugins, el contenido de actualización proporcionado por el atacante puede ejecutar PHP arbitrario con los privilegios del proceso del servidor web y persistir como puerta trasera. Este problema está corregido en la versión 0.1.3b.
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.3b
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
- Referencia en github.comgithub.com/fearlessgeekmedia/FearlessCMS/security/advisories/GHSA-56w…
- Referencia en github.comgithub.com/fearlessgeekmedia/FearlessCMS/pull/64
- Referencia en github.comgithub.com/fearlessgeekmedia/FearlessCMS/commit/6dba91d496463e3940a2c…
- Referencia en github.comgithub.com/fearlessgeekmedia/FearlessCMS/releases/tag/0.1.3
Ver el texto original en inglés (CVE.org)
FearlessCMS: Remote Code Execution via Unvalidated Update Repository URL in System Updater
FearlessCMS is a flat-file content management system centered on simplicity and open source. In 0.1.2b and earlier, an authenticated administrator can set an arbitrary Git repository URL through admin/updater-handler.php and trigger perform_update, which passes the URL to update.sh. The updater clones the repository and replaces the live plugins/, admin/, and includes/ directories without verifying the repository's identity, signatures, or contents. Because router.php permits existing PHP files under plugins to be executed by the PHP development server, attacker-supplied update content can execute arbitrary PHP with the web server process's privileges and persist as a backdoor. This issue is fixed in version 0.1.3b.