CVE-2026-63190 in FearlessCMS
Sumário
de VulDB • 28/10/2026
O FearlessCMS é um sistema de gerenciamento de conteúdo (`content`) baseado em arquivos planos, focado na simplicidade e no código aberto. Antes da versão 0.1.4, cinco scripts PHP de depuração/teste sob o diretório `admin/` realizam operações privilegiadas sem verificações de autenticação via `isLoggedIn()`, proteção CSRF ou validação adequada do `path`. No servidor de desenvolvimento embutido do PHP, incluindo a implantação padrão no Docker, o arquivo `router.php` verifica um prefixo URI administrativo não normalizado enquanto o sistema de arquivos resolve segmentos de pontos (`.`), permitindo que `/./admin/` contorne a barreira de login administrativa e execute esses scripts diretamente. Em `admin/debug_save_flow.php`, os parâmetros `path` e `content` controlados pelo atacante são passados para `file_put_contents`, possibilitando gravações arbitrárias em arquivos `.md` sob o diretório `content/` ou fora dele através de traversal de caminho (`path`), permitindo a defacement do site e injeção de JavaScript armazenado (stored XSS) nas páginas públicas; além disso, a saída de `print_r($_POST)` sem escape via `htmlspecialchars` também causa cross-site scripting refletido. O parâmetro `path` em `admin/debug_content.php` alcança as funções `scandir()`, `file_get_contents()` e `posix_getpwuid()`, permitindo enumeração arbitrária de diretórios e leitura de arquivos `.md` que expõem caminhos absolutos, propriedade (ownership), permissões, hashes e pré-visualizações do `content`. O endpoint `admin/preview-handler.php` aceita JSON com campos `content` e `title` e grava arquivos enumeráveis sob `content/_preview/`, possibilitando stored cross-site scripting e exaustão de disco. O endpoint `admin/testdebug.php` anexa dados ao arquivo `admin/testdebug.log` sem autenticação, também permitindo a exaustão do disco. O script `admin/test_redirect.php` expõe um artefato de teste, mas faz escape das suas entradas e não é, por si só, uma fonte (sink) para XSS. A execução de scripts armazenados pode roubar sessões e comprometer administradores quando eles visualizam o `content` afetado. As operações de leitura e gravação são executadas com as permissões do PHP; a implantação testada executa o PHP como root, amplificando o impacto no sistema de arquivos. Este problema foi corrigido na versão 0.1.4.
If you want to get best quality of vulnerability data, you may have to visit VulDB.