Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain or compromise Contributor-level WordPress account
-
DeliveryInsert {reusable-block-N} shortcode into a draft post
-
ExploitTrigger WordPress post preview to execute shortcode server-side
-
Executionreplace_ai_tags() calls get_post_field() without authorization check
-
ImpactFull content of target post returned in preview response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires an authenticated WordPress session with at minimum Contributor-level role, which grants the ability to create posts and use the post preview feature. The Ad Inserter plugin must be installed and active in a version up to and including 2.8.16. The attacker must be able to place the [adinserter] shortcode containing a {reusable-block-N} pattern in a post and trigger a preview render - both capabilities are available by default to Contributors. The numeric post ID of the target (N) must be known or enumerable; WordPress post IDs are sequential and trivially guessed by incrementing integers. Exploitation is bounded to reading post content fields and does not enable write operations, code execution, or privilege escalation. Sites where no untrusted users hold Contributor or higher roles have no exploitable attack surface. The vulnerability does not affect post metadata, user credentials, or configuration settings - only the post_content field of the target post. |
| Impact | The CVSS 4.3 score (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) accurately characterizes the real-world risk profile. The network vector and low attack complexity mean exploitation does not require special network positioning - any internet-accessible WordPress admin panel suffices. However, the PR:L metric confirms authenticated access at Contributor level is a hard prerequisite, meaningfully gating opportunistic mass exploitation. The confidentiality impact is partial (C:L), bounded to post content; there is no integrity or availability impact. The vulnerability is absent from the CISA KEV catalog and no public proof-of-concept exploit code has been identified, suggesting it has not attracted widespread exploitation tooling. EPSS data was not provided in the input, so exploitation probability cannot be quantified from that signal. In practice, risk scales directly with site architecture: a single-admin WordPress site has zero exposure, while a multi-author publishing platform, news site, or membership platform with active Contributor accounts and sensitive unpublished content faces real disclosure risk. The attack is trivial in technique - no exploit sophistication is required - so the Contributor access requirement is the primary barrier, not technical complexity. |
| Exploit ScenarioDerived | An attacker with a Contributor-level WordPress account creates a new post containing the shortcode [adinserter data="{reusable-block-N}"] where N is any post ID on the site - IDs are sequential integers easily enumerated by incrementing from 1. By using the WordPress post preview feature, the shortcode is rendered server-side, and replace_ai_tags() fetches and returns the full content of the target post regardless of its Private, Draft, or password-protected status. No public proof-of-concept code exists, but the technique requires no special tooling beyond a browser and knowledge of the shortcode syntax. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 03, 2026
Insecure Direct Object Reference in the Ad Inserter WordPress plugin (versions up to and including 2.8.16) allows authenticated Contributor-level users to read the full content of arbitrary posts they do not own or have permission to view, including Private, Draft, Pending, Trashed, and password-protected posts. The flaw exists in the shortcode processing function replace_ai_tags(), which fetches post content by a user-supplied numeric ID without any authorization check, post-type restriction, or status filtering. No public exploit has been identified at time of analysis and the vulnerability is not listed in the CISA KEV catalog.
RemediationAI
A patch has been committed to the WordPress plugin repository as changeset 3591792 (https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3591792%40ad-inserter&new=3591792%40ad-inserter&sfph_mail=); however, the exact patched release version number is not confirmed in the available data, so administrators should update Ad Inserter to the latest version available in the WordPress plugin directory and verify the installed version exceeds 2.8.16. If an immediate update is not feasible, site administrators should audit all accounts with Contributor-level or higher roles and remove or demote any that are not fully trusted, since this is the sole access prerequisite for exploitation. As a more aggressive temporary mitigation, the Ad Inserter plugin can be deactivated entirely - this eliminates the attack surface but also disables all ad insertion and AdSense functionality, which may have revenue impact. There is no network-layer workaround because the vulnerability is triggered through legitimate, authenticated WordPress HTTP requests that cannot be distinguished from normal shortcode usage.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in the WordPress plugin Ad Inserter by Spacetime (CPE: cpe:2.3:a:spacetime:ad_inserter_-_ad_manager_&_adsense_ads:*:*:*:*:*:*:*:*). The plugin's [adinserter] shortcode accepts a data attribute processed by the replace_ai_tags() function. This function handles a {reusable-block-N} tag pattern by invoking WordPress's native get_post_field('post_content', N), where N is a post ID entirely controlled by the requesting user. CWE-639 (Authorization Through User-Controlled Key) precisely describes the root cause: the function uses the user-supplied integer N as a database lookup key without calling current_user_can('read_post', N) to verify read authorization, without restricting the lookup to the wp_block post type (WordPress reusable blocks, the intended target), and without filtering on post status. WordPress's get_post_field() is a low-level data accessor that bypasses visibility rules when called this way, so any post ID in the database becomes readable. The flaw is traceable to specific lines in ad-inserter.php: L13083, L10569, L10818, and L2101 as catalogued in the WordPress plugin trac at the 2.8.16 tag.
Know when Wordpress Plugin gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Requires network access and Contributor-level auth (PR:L); post ID enumeration is trivial (AC:L); impact limited to partial post content disclosure (C:L), no integrity or availability effect.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Ad Inserter - Ad Manager & AdSense Ads plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to and including 2.8.16 via the 'data' attribute of the [adinserter] shortcode. This is due to the replace_ai_tags() function processing a {reusable-block-N} tag pattern that calls get_post_field('post_content', N) without verifying the requesting user's capability with current_user_can('read_post'), without restricting the post type to 'wp_block', and without checking the post status. This makes it possible for authenticated attackers, with Contributor-level access and above, to read the full content of arbitrary posts including Private, Draft, Pending, Trashed, and password-protected posts owned by other users, by placing the shortcode in a post they own and previewing it.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
EUVD-2026-41520
GHSA-ppgc-36hr-q23g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB