
PoC funcional para CVE-2025-2304, uma escalada de privilégio por atribuição em massa no Camaleon CMS. Automatiza a sincronização CSRF, descoberta de ID dinâmico e injeção de payload para escalar usuários com privilégios baixos para administrador através do endpoint updated_ajax.
Este repositório contém uma Prova de Conceito (PoC) funcional para uma vulnerabilidade de Atribuição em Massa no Camaleon CMS (versões anteriores a 2.8.1). A vulnerabilidade reside no endpoint updated_ajax do módulo de Gerenciamento de Usuários, onde a aplicação não filtra estritamente atributos sensíveis dentro do hash do parâmetro password.
Ao injetar um atributo role no escopo de password durante uma atualização de perfil, um usuário com baixos privilégios pode sobrescrever suas próprias permissões para obter status admin.
A vulnerabilidade está enraizada em uma má configuração de Parâmetros Fortes no controlador Ruby on Rails. Quando a aplicação processa a solicitação de atualização AJAX, ela permite indevidamente que a chave role seja mesclada aos atributos do objeto do usuário:
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session para manter o estado entre as fases de autenticação e exploração.authenticity_token do DOM e o sincroniza com o cabeçalho X-CSRF-Token, satisfazendo os requisitos de segurança AJAX do Rails./admin/profile/edit para resolver dinamicamente o user[id] necessário para o endpoint RESTful._method=patch para satisfazer os requisitos de roteamento da aplicação para atualizações de recursos via POST.requestsbeautifulsoup4Instale as dependências:
pip install -r requirements.txt
python3 main.py -u <url_alvo> --user <nome_de_usuário> --password <senha>
/admin/login): Estabelece uma sessão autenticada usando user[username]./admin/profile/edit): Extrai o user[id] único e um novo authenticity_token./admin/users/:id/updated_ajax): Envia a carga de injeção.O exploit utiliza uma carga do tipo application/x-www-form-urlencoded estruturada da seguinte forma:
Esta ferramenta é para fins educacionais e testes de penetração autorizados apenas. O acesso não autorizado a sistemas de produção é ilegal.
| Parâmetro | Valor | Descrição |
|---|
_method | patch | Substituição do método REST do Rails |
authenticity_token | [Captured] | Proteção CSRF sincronizada |
password[password] | [NewPassword] | Necessário para validação do escopo de senha |
password[role] | admin | Injeção Maliciosa |