Advisory

CVE-2026-109936: Cross-site scripting in Otter Blocks

CVSS 7.5 (CVE record)Published Oct 24, 2026Last verified Nov 4, 2026

An unauthenticated attacker can inject malicious web scripts into pages using the Otter Blocks plugin due to insufficient input sanitization and output…

Exploited in the wild
Not reported
Installs not updated
At least 24.05%
Affected and fixed versions
ComponentAffectedFixed in
Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE (plugin)before 3.2.83.2.8
Run a free scan of your site

The free scan checks what is visible from outside your site. It does not log in, and it cannot confirm on its own whether this specific issue is present.

Summary

A stored Cross-Site Scripting (XSS) vulnerability exists in the Otter Blocks plugin. This allows unauthenticated attackers to inject malicious web scripts into website pages. The vulnerability is addressed in version 3.2.8. A Proof of Concept (PoC) for this vulnerability is scheduled for public display on November 21, 2026.

Affected and patched versions

  • Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE (plugin otter-blocks): affected before 3.2.8; fixed in 3.2.8

Is my site vulnerable?

To determine if your WordPress site is affected by CVE-2026-109936, you need to check the version of the Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE plugin installed on your site.

Follow these steps:

  1. Log in to your WordPress administration dashboard.

  2. Navigate to the "Plugins" section in the left-hand menu.

  3. Select "Installed Plugins."

  4. Locate "Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE" in the list of installed plugins.

  5. Examine the version number displayed next to the plugin name.

If the installed version is earlier than 3.2.8, your site is vulnerable to CVE-2026-109936. If your site runs version 3.2.8 or a newer version, the vulnerability is addressed.

What an attacker actually does

The vulnerability, identified as CVE-2026-109936, stems from insufficient input sanitization and output escaping within the Otter Blocks plugin. Specifically, versions before 3.2.8 do not correctly manage a pattern used for rewriting dynamic-content tokens during the rendering of blocks. This flaw allows the pattern to consume the closing quote of an HTML attribute. When this occurs, adjacent unescaped data is pulled into the markup and interpreted as new HTML attributes.

This mechanism enables unauthenticated attackers to inject arbitrary web scripts into pages. These injected scripts are then stored on the website. Because the scripts are stored within the website's content, they persist across user sessions and page loads.

When any user, including a logged-in administrator, accesses a page containing this malicious content, the script executes within their web browser. This can lead to various unauthorized actions, such as session hijacking, website defacement, or redirection to malicious sites, all performed within the context of the visiting user's browser. The vulnerability enables unauthenticated users to achieve stored Cross-Site Scripting.

How to detect a compromise

Detecting a compromise related to stored Cross-Site Scripting (XSS) involves examining the website's content and underlying database for injected scripts. Since the malicious scripts are stored, they become part of the legitimate content, making detection important.

Indicators of compromise may include:

  • Unexpected script execution: Users report unusual behavior when visiting pages that use Otter Blocks, such as pop-up windows, redirects, or unexpected content appearing.

  • Altered page source: Inspect the HTML source code of pages that display Otter Blocks content. Look for <script> tags or HTML attributes like onerror, onload, onmouseover, or javascript: URLs that appear out of place or within elements not typically associated with dynamic scripting. These might be embedded directly into block attributes or content.

  • Database anomalies: The injected scripts are stored in the WordPress database. You can search the database for common XSS payloads.

To investigate further, you can use the following methods:

  • Manual content review: Systematically review the content of posts and pages that utilize Otter Blocks. Look for any unusual text, code snippets, or formatting that might indicate script injection.

  • Database search: Access your WordPress database (e.g., via phpMyAdmin or a command-line client). Search the wp_posts table (or your custom table prefix) within the post_content column for suspicious strings. You might also check the wp_postmeta table for metadata associated with Otter Blocks that could contain injected scripts.

    • Specific patterns to search for include:

      • <script

      • javascript:

      • onerror=

      • onload=

      • onmouseover=

  • WP-CLI commands: If you have WP-CLI access, you can use commands to search your database for potential injections. For example, to search all tables for the string <script:

    wp db search '<script' --all-tables

    This command helps identify where such strings might exist. Review the output carefully to distinguish legitimate plugin code or content from malicious injections.

Identifying injected scripts requires careful analysis to differentiate between legitimate plugin functionality and malicious code. If you find suspicious entries, isolate the affected content and prepare for remediation.

How to fix

To address CVE-2026-109936, update the Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE plugin.

  1. Log in to your WordPress administration dashboard.

  2. Navigate to the "Plugins" section in the left-hand menu.

  3. Select "Installed Plugins."

  4. Locate "Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE" in the list.

  5. If an update is available, a notice will appear below the plugin name. Click "Update Now."

  6. Ensure the plugin updates to version 3.2.8 or a newer version.

Updating the plugin to version 3.2.8 or later applies the necessary fixes for insufficient input sanitization and output escaping, mitigating the stored Cross-Site Scripting vulnerability.

Timeline

Date

Event

2026-10-21

Public disclosure

2026-10-22

NVD entry published

2026-10-23

Vulnerability publicly published

2026-11-21

PoC scheduled

Sources

PowerSEC coverage
PowerSEC detects the affected versions on every plan, and has since October 25, 2026. No PowerSEC firewall rule blocks this attack. Update to 3.2.8 or later to remove the vulnerability.
This record contains material that is subject to copyright Copyright 2012-2026 Defiant Inc. Copyright 1999-2026 The MITRE Corporation
Hacked? Talk to us