
Second CVE still Remote Code Execution
CVE-2026-35196 · Chamilo LMS · Injeção de Comando no SO → RCE
Pesquisador: K
Tipo de Divulgação: Divulgação Responsável
Status: Corrigido Produto Afetado: Chamilo LMS< 2.0(Confirmado nav1.11.32)
Existe uma vulnerabilidade crítica de Injeção de Comando no SO na ação export_all_certificates do arquivo main/inc/ajax/gradebook.ajax.php no Chamilo LMS v1.11.32.
A aplicação recupera um código de curso através de api_get_course_id(), que lê diretamente de $_SESSION['_cid']. Este valor derivado da sessão é concatenado sem sanitização em uma chamada shell_exec() — sem escapeshellarg(), sem validação de lista branca, sem imposição de tipo.
Um atacante que consiga manipular ou envenenar a variável _cid de sua sessão (via envenenamento de sessão, encadeamento de IDOR ou outras primitivas de manipulação de sessão) pode injetar metacaracteres arbitrários do shell e alcançar execução remota de código completa como o usuário do servidor web (www-data).
Arquivo Vulnerável: main/inc/ajax/gradebook.ajax.php
Função Vulnerável: export_all_certificates
Quando um usuário aciona a ação export_all_certificates, o script tenta executar um processo em segundo plano para processar certificados:
$courseCode = api_get_course_id(); // Recupera o valor de $_SESSION['_cid']
$sessionId = api_get_session_id();
// ...
$commandScript = api_get_path(SYS_CODE_PATH).'gradebook/cli/export_all_certificates.php';
$userList = implode(',', $userList);
// Falha: Variáveis como $courseCode são passadas diretamente para o shell sem escapeshellarg()
shell_exec("php $commandScript $courseCode $sessionId $categoryId $userList > /dev/null &");
Como a aplicação confia implicitamente no conteúdo das variáveis de sessão e falha em escapá-las adequadamente antes de enviá-las ao shell do sistema, um atacante com uma sessão manipulada pode anexar e executar comandos maliciosos. Por exemplo, se _cid contiver "; touch /tmp/remote_code_by_k; #", o comando interpretado pelo bash/sh se torna:
php /var/www/chamilo/main/gradebook/cli/export_all_certificates.php ; touch /tmp/remote_code_by_k; # ... > /dev/null &
O shell executa o script CLI, seguido pelo payload injetado, e ignora o restante da string de comando pretendida.
$_SESSION['_cid']. Isso pode ser alcançado encadeando esta falha com uma vulnerabilidade de envenenamento de sessão ou manipulando o valor do código do curso através de um IDOR ou tratamento inseguro de parâmetros em outra parte da aplicação para atualizar seu contexto de sessão._cid para: "; [MALICIOUS_COMMAND]; #"GET para: /main/inc/ajax/gradebook.ajax.php?a=export_all_certificates&cat_id=1 com o cookie de sessão envenenado.www-data).escapeshellarg(): Envolva todas as variáveis derivadas do usuário (como $courseCode, $sessionId e $userList) com escapeshellarg() do PHP antes de passá-las para shell_exec() para neutralizar metacaracteres arbitrários do SO.$_SESSION['_cid']) sejam rigidamente tipadas e sanitizadas para que potenciais ataques de "Envenenamento de Sessão" ou encadeamento de IDOR sejam bloqueados no ponto de entrada.www-data) com permissões restritivas de escrita no sistema de arquivos e limite o acesso da aplicação a binários essenciais do shell do Linux para mitigar capacidades de pós-exploração.Handle : K
GitHub : https://github.com/kx00007
Foco : Vulnerabilidade de RCE no lado do servidor, Caça a CVEs, Pesquisa de Vulnerabilidades, Desenvolvimento de Exploits
Anterior : CVE-2026-29041 (Chamilo LMS — RCE Autenticada via Upload de Arquivo)
⚡Tente Mais.
| Campo | Detalhes |
|---|
| Produto | Chamilo LMS |
| Versão Afetada | < 2.0 (Confirmado na v1.11.32) |
| Vulnerabilidade | Injeção de Comando no SO |
| CWE | CWE-78 — Neutralização Incorreta de Elementos Especiais usados em um Comando do SO |
| Pontuação CVSSv3.1 | 8.8 (ALTO) |
| Vetor | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Autenticação Necessária | Sim (qualquer usuário autenticado com uma sessão envenenada) |
| Tipo de Exploit | Execução Remota de Código Autenticada |
| Arquivo Vulnerável | main/inc/ajax/gradebook.ajax.php |
| Dimensão | Impacto |
|---|
| Confidencialidade | Acesso total de leitura — código-fonte, configurações, credenciais do banco de dados, /etc/passwd |
| Integridade | Escrita arbitrária de arquivos, implantação de webshell, manipulação do banco de dados |
| Disponibilidade | Interrupção de serviço, destruição do sistema de arquivos, implantação de ransomware |
| Escopo | Processo do servidor web (www-data); potencial de movimento lateral via exposição de credenciais |
| Componente | Detalhes |
|---|
| SO | Ubuntu Server (Docker) |
| Servidor Web | Apache / Nginx |
| PHP | 7.x / 8.x |
| Aplicação | Chamilo LMS v1.11.32-v2.0 |
| Shell | /bin/sh → bash |