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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-92084-beaver-builder-shortcode-poc — Laboratoire de validation Docker et PoC Python pour CVE-2026-92084, une faille d'exécution de shortcode non authentifiée dans Beaver Builder Lite <= 2.11.0.5, avec un contrôle corrigé et un écran nuclei. | Kitploit
Outils/GitHubGitHub/hassham1/cve-2026-92084-beaver-builder-shortcode-poc
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebLabs et Pratique
GitHubhassham1/cve-2026-92084-beaver-builder-shortcode-poc

CVE-2026-92084-beaver-builder-shortcode-poc

Laboratoire de validation Docker et PoC Python pour CVE-2026-92084, une faille d'exécution de shortcode non authentifiée dans Beaver Builder Lite <= 2.11.0.5, avec un contrôle corrigé et un écran nuclei.

Voir le dépôt
2il y a 1 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-92084 - Laboratoire de validation de l'exécution arbitraire de shortcodes dans Beaver Builder

Matériel de recherche en sécurité pour reproduire et valider CVE-2026-92084 : Beaver Builder (Lite) <= 2.11.0.5 exécute des shortcodes WordPress enregistrés arbitraires implantés dans la sortie de widget rendue par le module Sidebar, via la passe do_shortcode() à l'échelle de la mise en page du builder.

  • Affecté : Beaver Builder Lite <= 2.11.0.5
  • Corrigé : 2.11.0.6 (le module Sidebar définit 'renders_shortcodes' => false ; le mécanisme d'encodage des crochets lui-même a été livré plus tôt et reste inchangé)
  • CVSS 3.1 : 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) - CWE-94
  • Authentification : aucune, mais le commentaire de l'attaquant doit franchir le seuil d'approbation des commentaires du site (auto-approbation ou action d'un modérateur) avant que le widget Recent Comments n'expose le shortcode implanté

À utiliser uniquement sur des systèmes que vous possédez ou que vous êtes explicitement autorisé à tester. Le PoC publie un commentaire dont le nom d'auteur contient un shortcode marqueur enregistré pour le laboratoire. Aucun shortcode destructeur n'est utilisé et rien n'est écrit sur le disque.

Verdict

Statut : prouvé dans le laboratoire fourni.

Beaver Builder Lite 2.11.0.5 (WordPress 7.1.2, page builder avec un module Sidebar

  • widget Recent Comments) :
comment posted : author name "[cve92084]" on the builder page
result         : rendered page contains the marker shortcode's server-side
                 output "CVE92084-SHORTCODE-FIRED"
                 (executed by the layout-wide do_shortcode() pass)
2.11.0.6       : brackets entity-encoded, marker absent (patched negative
                 control; page shows the literal text [cve92084])

Cela démontre l'exécution côté serveur d'un shortcode enregistré arbitraire, avec la sortie intégrée dans la page, divulguée à chaque visiteur. Cela ne démontre pas une RCE ; l'impact dépend des shortcodes enregistrés sur la cible (exposition de post/meta, formulaires, shortcodes fournis par des plugins avec effets de bord).

Cause racine (vérifiée par rapport au correctif 2.11.0.6)

Le sink. FLBuilder::render_content() fait passer la mise en page assemblée du builder par une large passe de shortcodes avant de l'afficher :

// classes/class-fl-builder.php:2139, Beaver Builder Lite 2.11.0.5
$content = do_shortcode( $content );

Le point d'injection. Le module Sidebar restitue la sortie des widgets d'une barre latérale WordPress telle quelle dans cette mise en page :

// modules/sidebar/includes/frontend.php:4, 2.11.0.5
if ( ! dynamic_sidebar( $settings->sidebar ) ) {

Le contenu du widget est une donnée utilisateur non fiable — le widget principal Recent Comments répercute get_comment_author_link(), c'est-à-dire le nom fourni par un commentateur (non authentifié). FLBuilder::double_escape_shortcodes() ne fait que ré-encadrer la forme échappée [[x]], donc un simple [cve92084] passe et la passe do_shortcode() l'exécute.

Le correctif. 2.11.0.5 embarque déjà le mécanisme de neutralisation — FLBuilderModule::$renders_shortcodes = true (class-fl-builder-module.php:143) et FLBuilder::escape_foreign_module_shortcodes() accroché aux deux filtres de rendu de module (class-fl-builder.php:109-110, appliqué à la ligne 3240), qui encode en entités les crochets de tout shortcode enregistré dans la sortie du module. Le module Sidebar n'a simplement jamais désactivé cette option. Le seul changement fonctionnel de 2.11.0.6 est la désactivation :

// modules/sidebar/sidebar.php, 2.11.0.6
'renders_shortcodes' => false,
// dynamic_sidebar() renders third-party widget output that can contain
// untrusted user data (e.g. a comment author name via the core Recent
// Comments widget); do not run its shortcodes.

Flux d'exploitation (tel que validé)

  1. Cibler n'importe quelle page du constructeur dont la mise en page contient le module Sidebar au-dessus d'une barre latérale affichant un texte de widget contrôlable par l'attaquant (le lab : le widget core Recent Comments ; sur des cibles réelles, tout widget affichant des données utilisateur).
  2. Envoyer (POST) un commentaire à /wp-comments-post.php avec la charge utile du shortcode comme nom d'auteur du commentaire.
  3. Le commentaire passe le seuil d'approbation du site (le lab approuve automatiquement ; sur des cibles réelles : approbation automatique ou un modérateur) et le widget Recent Comments commence à afficher le nom de l'auteur.
  4. Lors du rendu suivant et de chaque rendu ultérieur de la page du constructeur, la sortie du widget atterrit dans la mise en page et la passe do_shortcode() exécute la charge utile. Sa sortie remplace le nom de l'auteur, visible par tous les visiteurs.

Démarrage rapide

Prérequis : Docker avec Compose v2, Python 3.10+ sur l'hôte.

./lab verify

Construit le lab 2.11.0.5, exige que le marqueur se déclenche, puis construit le lab 2.11.0.6 et exige son absence. Supprimez tout avec ./lab reset.

Preuves attendues

Contrôle vulnérable :

[!!!] SHORTCODE EXECUTION CONFIRMED
  posted  : comment author '[cve92084]' on page 5
  evidence: 'CVE92084-SHORTCODE-FIRED' present in the rendered builder page
  context : ...<a href="https://github.com/hassham1/cve-2026-92084-beaver-builder-shortcode-poc/blob/main/..." class="url">CVE92084-SHORTCODE-FIRED</a>...
RESULT: VULNERABLE CONTROL CONFIRMED

Contrôle corrigé :

[=] shortcode text present but NOT executed: brackets entity-encoded
    (patched >= 2.11.0.6 behavior: escape_foreign_shortcodes).
RESULT: PATCHED CONTROL CONFIRMED

Un marqueur présent dans la page uniquement à l'intérieur du commentaire affiché (texte brut) n'est pas accepté comme preuve ; le marqueur doit apparaître comme la sortie exécutée du shortcode.

Cycle de vie manuel du lab

./lab start vulnerable   # 2.11.0.5 lab on http://127.0.0.1:9488
./lab test               # assert marker fires
./lab start patched      # 2.11.0.6 lab
./lab test               # assert absence
./lab status
./lab reset

Exécutez le PoC manuellement (loopback par défaut ; les cibles externes autorisées nécessitent la surcharge explicite) :

python3 poc/poc_cve_2026_92084.py --url http://127.0.0.1:9488 --post-id 5
python3 poc/poc_cve_2026_92084.py --url https://target.example \
  --post-id 5 --allow-authorized-non-loopback [--insecure]

Le template nuclei (nuclei/cve-2026-92084.yaml) n'est qu'un filtre de version (readme.txt stable tag <= 2.11.0.5). La chaîne comportementale nécessite la soumission d'un commentaire ainsi qu'une transition d'approbation, ce qui n'est pas pratique à exprimer dans nuclei ; le PoC Python exécute le flux complet.

Versions affectées et testées

VersionÉvaluation
Beaver Builder Lite 2.11.0.5Exécution du shortcode reproduite de bout en bout
Beaver Builder Lite 2.11.0.6Contrôle négatif corrigé reproduit
Beaver Builder Lite <= 2.11.0.4Affectée selon l'avis ; non testée individuellement
Beaver Builder (Pro/Agency)Non testée - le périmètre de l'avis concerne le plugin Lite

Organisation du dépôt

.
├── .github/workflows/validate.yml
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── docker-compose.yml
├── lab
├── nuclei/
│   └── cve-2026-92084.yaml
├── poc/
│   └── poc_cve_2026_92084.py
└── provision/
    └── install.php

Non commité : assets/ (zips de plugins), .lab-state, __pycache__/.

Limites de validation

Télécharger l’outil