{"id":"CVE-2026-109933","kind":"vulnerability","aliases":["CVE-2026-109933"],"related":[],"title":"Otter Blocks WordPress plugin: stored script injection through block styling values","description":"The Otter Blocks  WordPress plugin before 3.2.8 does not properly sanitize and escape user-supplied block styling values before writing them into an inline stylesheet, allowing users with contributor-level access and above to inject arbitrary web scripts that execute when any visitor, including administrators, views the affected post.","summary":"The Otter Blocks WordPress plugin before 3.2.8 writes user-supplied block styling values into an inline stylesheet without sanitizing or escaping them. A contributor-level user can store a script that runs in the browser of any visitor, including administrators, when they view the affected post.","severity":"medium","cvss":6.8,"epss":0.00153,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wordpress-plugins"],"not_affected_if":["no-contributor-accounts","plugin-3.2.8-or-later","plugin-not-installed"],"how_to_check":"- Check the installed Otter Blocks version in the WordPress plugins screen or `wp plugin get otter-blocks --field=version`; versions below `3.2.8` are affected.\n- Review posts by contributor-level accounts for inline styles containing script-like content, if the team has reason to suspect abuse.","fix":"- Update the Otter Blocks plugin to `3.2.8` or later.\n- Rotate credentials for any contributor or author accounts if abuse is suspected.","status":"open","published_at":"2026-10-23T06:17:05+00:00","first_seen_at":"2026-10-23T21:57:32+00:00","triaged_at":"2026-10-25T03:42:40+00:00","updated_at":"2026-10-25T03:42:40+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:42:40Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Otter Blocks plugin to `3.2.8` or later.\n- Rotate credentials for any contributor or author accounts if abuse is suspected.","reach":"network","title":"Otter Blocks WordPress plugin: stored script injection through block styling values","impact":"medium","summary":"The Otter Blocks WordPress plugin before 3.2.8 writes user-supplied block styling values into an inline stylesheet without sanitizing or escaping them. A contributor-level user can store a script that runs in the browser of any visitor, including administrators, when they view the affected post.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugins","self-hosted"],"confidence":0.7,"needs_auth":"yes","worst_case":"Attacker script runs in administrators' browsers when they view the post.","analyst_note":"","how_to_check":"- Check the installed Otter Blocks version in the WordPress plugins screen or `wp plugin get otter-blocks --field=version`; versions below `3.2.8` are affected.\n- Review posts by contributor-level accounts for inline styles containing script-like content, if the team has reason to suspect abuse.","needs_analyst":false,"not_affected_if":["plugin-not-installed","plugin-3.2.8-or-later","no-contributor-accounts"],"who_is_affected":"Sites running the Otter Blocks plugin before 3.2.8 that let contributor-level or higher users create or edit posts. The exposure depends on those accounts being able to write block styling, so single-author sites with no untrusted writers are at lower risk. Sites that do not run the plugin can skip it.","user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"unknown"},"cost_usd":0.000637,"input_tokens":3366,"output_tokens":601,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-109933':14A,17A '-2026':13A,16A '3.2.8':32B,80C 'access':106C 'administr':67B,120C 'affect':72B,123C 'allow':100C 'arbitrari':111C 'block':2A,9A,28B,37B,76C,90C 'browser':62B 'contributor':51B,104C 'contributor-level':50B,103C 'cve':12A,15A 'escap':47B,86C 'execut':115C 'host':21B 'includ':66B,119C 'inject':7A,110C 'inlin':42B,98C 'level':52B,105C 'otter':1A,27B,75C 'packag':18B 'plugin':4A,25B,30B,78C 'post':73B,124C 'proper':83C 'run':59B 'sanit':45B,84C 'script':6A,57B,113C 'self':20B 'self-host':19B 'store':5A,55B 'style':10A,38B,91C 'stylesheet':43B,99C 'suppli':36B,89C 'user':35B,53B,88C,101C 'user-suppli':34B,87C 'valu':11A,39B,92C 'view':70B,121C 'visitor':65B,118C 'web':112C 'without':44B 'wordpress':3A,22B,24B,29B,77C 'wordpress-plugin':23B 'write':33B,94C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Otter Blocks plugin before 3.2.8 that let contributor-level or higher users create or edit posts. The exposure depends on those accounts being able to write block styling, so single-author sites with no untrusted writers are at lower risk. Sites that do not run the plugin can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T06:17:05+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H","cvss_by":"134c704f-9b21-4f2e-91b3-4a467353bcc0","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-109933","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109933","severity":null,"published_at":"2026-10-23T06:17:05+00:00","modified_at":"2026-10-23T14:20:57+00:00","first_seen_at":"2026-10-23T21:57:32+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-109933","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-109933","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-24T07:15:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}