CVE-2026-92229 vulnerability and BitFire protection

How BitFire Stops CVE-2026-92229 Forminator Shortcode Exploitation

Recherche de vulnérabilité WordPress

BitFire blocks automated Forminator exploit delivery, while PRO RASP stops privileged actions invoked through malicious shortcodes.

Unauthenticated Critical Severity Arbitrary Shortcode Execution Code Injection
BitFire · Avis de vulnérabilitéRecherche publiée
ConseilCVE-2026-92229
ComposantForminator Forms – Contact Form, Payment Form & Custom Form Builder
Source pertinentelibrary/abstracts/abstract-class-front-action.php: get_post_data(); library/modules/quizzes/front/front-action.php: submit_quizzes() and render_knowledge_result()
Résumé exécutif

Ce que les administrateurs WordPress doivent savoir

CVE-2026-92229 is a critical unauthenticated arbitrary shortcode execution vulnerability in Forminator Forms through version 1.57.2. A public Knowledge quiz accepts shortcode syntax in the visitor-controlled `current_url`, embeds it in HTML, and runs `do_shortcode()` across the completed buffer. The result is server-side execution of any registered shortcode, with impact determined by its handler. BitFire FREE Bot Protection blocks automated exploit POSTs and unverified browsers before WordPress processes them. If a request reaches PHP, BitFire PRO RASP stops unauthorized PHP writes, plugin installation, administrator creation, and administrator impersonation attempted through the shortcode.

En un coup d'œil

Faits clés

  • Forminator Forms through 1.57.2 is affected; version 1.57.2.1 contains the fix
  • Exploitation requires a public Knowledge quiz completed through the unauthenticated AJAX workflow
  • URL escaping preserves the shortcode brackets later interpreted by whole-buffer do_shortcode()
  • BitFire FREE Bot Protection blocks automated and unverified-browser exploit POSTs
  • BitFire PRO RASP blocks unauthorized PHP, plugin, and administrator actions at runtime
01
Aperçu des vulnérabilités

Comprendre l'exposition

Le composant concerné, le chemin d’attaque et le risque pratique pour les sites Web WordPress.

Composant concernéForminator Forms – Contact Form, Payment Form & Custom Form Builder
Portée potentielle600,000+ installations
Technique d'attaquearbitrary shortcode execution
Publié2026-09-21
BitFire blocks automated exploit delivery before Forminator runs and denies unauthorized privileged actions if a malicious shortcode reaches runtime.
02
Analyse technique

Comment fonctionne la vulnérabilité

Détails de la recherche, versions concernées, comportement d'exploitation et conseils de remédiation.

How Forminator Turns a Posted URL Into Executable Shortcode

The exploit targets `/wp-admin/admin-ajax.php` and requires a public Knowledge quiz whose questions are all answered. Forminator's public endpoint supplies the nonce, so that check does not establish a WordPress identity. Version 1.57.2 accepts `current_url`, places it in a social-sharing `data-url` attribute, and escapes it with `esc_url()`. Square brackets remain valid URL characters, so injected shortcode syntax survives. The renderer then sends the entire HTML buffer through `do_shortcode()`, invokes the registered handler, and returns its output in `finalText`. This is arbitrary shortcode execution rather than automatic PHP execution; the final impact depends on the shortcodes registered by the site's plugins and theme.

BitFire FREE Stops Automated Exploit Delivery

BitFire FREE Bot Protection blocks known attack tools, unknown automated clients, and browsers that have not passed JavaScript verification from submitting the malicious quiz POST. The request is rejected before WordPress dispatches it to Forminator, so the vulnerable renderer never receives the injected `current_url`. Legitimate integrations can be narrowly allowed without disabling other protections. This vulnerability does not require a standard SQL injection, XSS, traversal, or malicious-file payload, so the protection claim does not depend on a WAF signature: Bot Protection stops the automated delivery path itself.

BitFire PRO RASP Blocks Dangerous Shortcode Outcomes

BitFire PRO RASP enforces authorization when WordPress and PHP attempt a protected operation. If an injected shortcode tries to install a plugin or create or modify PHP, filesystem protection denies the unauthorized write before a web shell or backdoor reaches disk. Database protection blocks administrator creation or privilege promotion without administrator authority. Login protection rejects administrator impersonation and authentication-cookie creation when the request lacks valid WordPress credentials. RASP does not sanitize `current_url` or suppress harmless shortcode output; it stops the privileged actions that turn shortcode execution into persistent code or account takeover.

Patch Forminator and Investigate for Persistence

Forminator 1.57.2.1 breaks the exploit twice: it normalizes `current_url` and removes shortcode syntax at the shared input boundary, then processes only trusted administrator-authored text before assembling the result buffer. Update immediately. Patching does not remove an earlier compromise, so sites that exposed a Knowledge quiz on a vulnerable release should investigate before declaring themselves clean. BitFire Threat Hunter can uncover backdoor administrator accounts, hidden database triggers, long-running PHP processes, and droppers that restore malware. Preserve logs, remove discovered persistence, and rotate relevant credentials.

Deploy BitFire's Layered WordPress Protection

BitFire FREE blocks the automated POST before vulnerable Forminator code runs, while BitFire PRO RASP denies unauthorized PHP, plugin, and administrator operations at runtime. Threat Hunter adds the persistence investigation needed after possible exposure. Deploy BitFire, update Forminator to 1.57.2.1 or later, and inspect affected sites for prior compromise. These controls deliver decisive defense before, during, and after exploitation without treating firewall protection as a substitute for patching.

03
Examen des sources

Code vulnérable et corrigé

La source pertinente se trouve dans library/abstracts/abstract-class-front-action.php: get_post_data(); library/modules/quizzes/front/front-action.php: submit_quizzes() and render_knowledge_result().

AvantComportement vulnérable
// Vulnerable behavior in Forminator 1.57.2, abridged.
$post_data = $this->remove_uploads_uid( $post_data );
return $post_data; // current_url retains shortcode syntax.

data-url="<?php echo esc_url( self::$prepared_data['current_url'] ); ?>"

$knowledge_result_html = ob_get_clean();
$knowledge_result_html = do_shortcode( $knowledge_result_html );
AprèsComportement corrigé
// Corrected behavior in Forminator 1.57.2.1, abridged.
$post_data = $this->remove_uploads_uid( $post_data );
$post_data = self::sanitize_post_current_url( $post_data );

protected static function sanitize_post_current_url( $post_data ) {
    if ( empty( $post_data['current_url'] ) ) {
        return $post_data;
    }
    $current_url = esc_url_raw( wp_unslash( $post_data['current_url'] ) );
    $post_data['current_url'] = strip_shortcodes( $current_url );
    return $post_data;
}

// Process only trusted text as shortcode input.
echo wp_kses_post( wpautop( do_shortcode( $text ), true ) );
$knowledge_result_html = ob_get_clean();
04
Protection « jour zéro »

Protection dès la première demande d'exploit

BitFire protège les serveurs WordPress dès le premier jour, avant qu'une vulnérabilité ne soit connue publiquement et avant que d'autres fournisseurs n'aient le temps de développer des signatures ou des correctifs.

01 · VérifierArrêtez les clients inconnus

Les contrôles des robots et la vérification du navigateur arrêtent les clients automatisés non fiables avant qu’un code d’exploitation jusqu’alors inconnu n’atteigne WordPress.

02 · DétecterBloquer les comportements malveillants

Les protections générales WAF identifient les comportements de requêtes dangereux et les charges utiles hostiles sans attendre une signature spécifique à la vulnérabilité.

03 · PrévenirContenir les attaques au moment de l'exécution

RASP suit l'exécution dans PHP et empêche les modifications non autorisées des fichiers, comptes et contenus de bases de données protégés.

BitFire · Protection WordPressPrêt pour le jour zéro
Protection contre les vulnérabilités WordPress Zero Day BitFire
BitFire combine des contrôles de client vérifié, une détection WAF basée sur le comportement et une application RASP d'exécution pour protéger WordPress avant qu'un exploit n'ait un nom, un CVE, une signature ou un correctif de fournisseur.
Ă€ propos de l'auteur

Cory Marais

Cory a plus de 20 ans d'expérience en sécurité Internet et est l'un des principaux développeurs du projet BitFire.

Lire la recherche sur la sécurité BitFire →
Protégez votre site WordPress

Ajoutez une protection avant l’arrivée du prochain exploit.

BitFire combine les contrôles de robots, l'inspection des demandes, la détection des logiciels malveillants et la protection d'exécution dans une seule plateforme de sécurité WordPress.

Protéger mon site gratuitement â†'