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
Lifecycle Timeline
2DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
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 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
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41520
GHSA-ppgc-36hr-q23g