Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-92084-beaver-builder-shortcode-poc — Laboratorio di validazione Docker e PoC in Python per CVE-2026-92084, una vulnerabilità di esecuzione di shortcode non autenticata in Beaver Builder Lite <= 2.11.0.5, con controllo patchato e screen di nuclei. | Kitploit
Strumenti/GitHubGitHub/hassham1/cve-2026-92084-beaver-builder-shortcode-poc
Scanner di VulnerabilitàAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebLab e Pratica
GitHubhassham1/cve-2026-92084-beaver-builder-shortcode-poc

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

Laboratorio di validazione Docker e PoC in Python per CVE-2026-92084, una vulnerabilità di esecuzione di shortcode non autenticata in Beaver Builder Lite <= 2.11.0.5, con controllo patchato e screen di nuclei.

Vedi Repository
21 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-92084 - Laboratorio di validazione per l'esecuzione arbitraria di shortcode in Beaver Builder

Materiale di ricerca sulla sicurezza per riprodurre e validare CVE-2026-92084: Beaver Builder (Lite) <= 2.11.0.5 esegue shortcode arbitrari registrati in WordPress inseriti nell'output dei widget renderizzato dal modulo Sidebar, tramite il passaggio do_shortcode() a livello di layout del builder.

  • Affetto: Beaver Builder Lite <= 2.11.0.5
  • Corretto: 2.11.0.6 (il modulo Sidebar imposta 'renders_shortcodes' => false; il meccanismo di codifica delle parentesi quadre è stato introdotto in precedenza ed è invariato)
  • CVSS 3.1: 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) - CWE-94
  • Autenticazione: nessuna, ma il commento dell'attaccante deve superare la soglia di approvazione dei commenti del sito (approvazione automatica o azione del moderatore) prima che il widget Recent Comments esponga lo shortcode inserito

Utilizzare solo su sistemi di propria proprietà o per i quali si è esplicitamente autorizzati a eseguire test. Il PoC pubblica un commento il cui nome autore contiene uno shortcode marcatore registrato nel laboratorio. Non viene utilizzato alcuno shortcode distruttivo e nulla viene scritto su disco.

Verdetto

Stato: dimostrato nel laboratorio fornito.

Beaver Builder Lite 2.11.0.5 (WordPress 7.1.2, pagina del builder con un modulo 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])

Ciò dimostra l'esecuzione lato server di uno shortcode registrato arbitrario con output incorporato nella pagina, divulgato a ogni visitatore. Non dimostra RCE; l'impatto dipende da quali shortcode sono registrati sul target (esposizione di post/meta, form, shortcode forniti da plugin con effetti collaterali).

Causa principale (verificata rispetto alla correzione 2.11.0.6)

Il sink. FLBuilder::render_content() esegue il layout del builder assemblato attraverso un ampio passaggio di shortcode prima di restituirlo in output:

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

Il punto di iniezione. Il modulo Sidebar renderizza l'output dei widget di una sidebar di WordPress testualmente in quel layout:

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

Il contenuto del widget è dato utente non attendibile: il widget principale Recent Comments restituisce get_comment_author_link(), cioè qualunque nome abbia fornito un commentatore (non autenticato). FLBuilder::double_escape_shortcodes() si limita a riapplicare le parentesi alla forma con escape [[x]], quindi un semplice [cve92084] passa attraverso e la passata di do_shortcode() lo esegue.

La correzione. La versione 2.11.0.5 include già il meccanismo di neutralizzazione: FLBuilderModule::$renders_shortcodes = true (class-fl-builder-module.php:143) e FLBuilder::escape_foreign_module_shortcodes() agganciato a entrambi i filtri di rendering dei moduli (class-fl-builder.php:109-110, applicato alla riga 3240), che codifica come entità le parentesi di qualsiasi shortcode registrato nell'output del modulo. Il modulo Sidebar semplicemente non ha mai effettuato l'opt-out. L'unica modifica funzionale nella 2.11.0.6 è l'opt-out:

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

Flusso di sfruttamento (come validato)

  1. Prendere di mira qualsiasi pagina del builder il cui layout contenga il modulo Sidebar sopra una sidebar che visualizza testo di widget controllabile dall'attaccante (nel lab: il widget core Recent Comments; su target reali qualsiasi widget che rifletta dati utente).
  2. Inviare un commento a /wp-comments-post.php con il payload shortcode come nome autore del commento.
  3. Il commento supera la soglia di approvazione del sito (il lab approva automaticamente; su target reali: approvazione automatica o un moderatore) e il widget Recent Comments inizia a renderizzare il nome autore.
  4. Al render successivo e a ogni render seguente della pagina del builder, l'output del widget finisce all'interno del layout e il passaggio do_shortcode() esegue il payload. Il suo output sostituisce il nome autore, visibile a ogni visitatore.

Avvio rapido

Requisiti: Docker con Compose v2, Python 3.10+ sull'host.

./lab verify

Crea il lab 2.11.0.5, richiede che il marker si attivi, poi crea il lab 2.11.0.6 e richiede la sua assenza. Rimuovi tutto con ./lab reset.

Evidenza attesa

Controllo vulnerabile:

[!!!] 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

Controllo corretto:

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

Un marker nella pagina solo all'interno del commento visualizzato (testo grezzo) non è accettato come prova; il marker deve apparire come output eseguito dello shortcode.

Ciclo di vita manuale del laboratorio

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

Esegui il PoC manualmente (loopback predefinito; i target esterni autorizzati richiedono l'override esplicito):

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]

Il template nuclei (nuclei/cve-2026-92084.yaml) è solo un controllo di versione (readme.txt stable tag <= 2.11.0.5). La catena comportamentale richiede l'invio di un commento più una transizione di approvazione, cosa non pratica da esprimere in nuclei; il PoC Python esegue il flusso completo.

Versioni interessate e testate

VersioneValutazione
Beaver Builder Lite 2.11.0.5Esecuzione dello shortcode riprodotta end to end
Beaver Builder Lite 2.11.0.6Controllo negativo con patch riprodotto
Beaver Builder Lite <= 2.11.0.4Interessata secondo l'advisory; non testata singolarmente
Beaver Builder (Pro/Agency)Non testata - l'ambito dell'advisory è il plugin Lite

Struttura del repository

.
├── .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 committato: assets/ (zip dei plugin), .lab-state, __pycache__/.

Limiti di validazione

Scarica lo strumento