CVE-2026-12242: AdRotate Banner Manager PHP Code Injection Vulnerability
A WordPress plugin called AdRotate Banner Manager contains a code injection flaw that allows attackers with basic publishing privileges to run malicious code on websites. The vulnerability exists in how the plugin processes shortcode attributes when certain caching tools are active. An authenticated attacker—someone with a Contributor account or higher—can exploit this to take control of the server and steal data, modify content, or disrupt operations.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.8 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-94
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-06-25
NVD description (verbatim)
The AdRotate Banner Manager plugin for WordPress is vulnerable to PHP Code Injection in all versions up to, and including, 5.17.7 via the 'banner' attribute of the adrotate shortcode. This is due to insufficient input validation and sanitization of the banner shortcode attribute before concatenation into a PHP code string wrapped in W3 Total Cache mfunc or Borlabs Cache fragment markers. This makes it possible for authenticated attackers, with Contributor-level access and above, to execute arbitrary PHP code on the server. This vulnerability requires W3 Total Cache or Borlabs Cache support to be enabled in AdRotate settings.
11 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
AdRotate Banner Manager versions up to 5.17.7 fail to properly validate and sanitize the 'banner' attribute passed to the adrotate shortcode before embedding it into PHP code strings. When W3 Total Cache or Borlabs Cache fragment markers (mfunc) are in use, unsanitized user input is concatenated directly into executable PHP code. This creates a classic code injection vulnerability (CWE-94) that bypasses normal WordPress safety boundaries. The flaw requires the attacker to be authenticated at the Contributor level or above, but does not require user interaction beyond crafting a malicious shortcode.
Business impact
Compromise of a WordPress site using this plugin can result in complete server takeover, data exfiltration, malware installation, and defacement. Organizations relying on AdRotate for advertisement management face operational disruption and potential liability if customer data is exposed. Recovery from PHP code injection typically requires forensic analysis, server hardening, and content restoration. Affected sites may be delisted by security services and lose visitor trust.
Affected systems
WordPress installations running AdRotate Banner Manager version 5.17.7 and earlier are vulnerable. The attack surface is limited to authenticated users (Contributor role or above), but is further constrained to environments where W3 Total Cache or Borlabs Cache is enabled and integrated with AdRotate. Standalone installations or those using neither cache plugin are not at risk.
Exploitability
Exploitability is high among organizations with permissive contributor policies. An attacker with a legitimate or compromised Contributor account can execute arbitrary PHP code with no additional steps once the cache plugin requirement is met. No zero-click attack vector exists; the attacker must craft and deploy a malicious shortcode. The absence of KEV designation and the niche cache-plugin dependency slightly reduce widespread exploitation risk, but the ease of delivery via shortcode and high privilege requirements make this a significant internal threat.
Remediation
Upgrade AdRotate Banner Manager to the earliest version that contains a security patch addressing this vulnerability—verify the exact version number in the vendor's security advisory. As an interim measure, restrict Contributor-level access to only trusted users, and consider disabling the plugin if it is not actively in use. Review logs for suspicious shortcodes posted by contributors. If W3 Total Cache or Borlabs Cache are not required for your site, disabling these plugins will immediately eliminate the attack surface.
Patch guidance
Check the official AdRotate plugin repository and vendor security advisories for the patched version number. Apply the update immediately to all affected WordPress installations. Before updating, back up your database and confirm plugin compatibility with your version of WordPress and any dependent cache plugins. After patching, validate that shortcode functionality remains intact and monitor for any post-update errors in server logs.
Detection guidance
Monitor WordPress user activity logs for Contributor or Editor accounts creating or modifying posts containing adrotate shortcodes with unusual or obfuscated parameters. Inspect post revision history and the wp_posts table for suspicious 'banner' attribute values. If W3 Total Cache or Borlabs Cache are in use, review their cache configuration and purge historical cache entries that may contain injected code. Search web server logs for POST requests to wp-admin that include shortcode syntax. Implement real-time alerting on new post creation by lower-privilege users.
Why prioritize this
This vulnerability merits immediate attention despite its authentication requirement. The CVSS 8.8 (HIGH) score reflects high confidentiality, integrity, and availability impact once exploited. The barrier to exploitation is low for internal threats, and compromise can lead to complete system takeover. Organizations with looser contributor access policies face elevated risk. The niche cache-plugin dependency limits mass exploitation but should not lower priority for affected environments.
Risk score, explained
The CVSS 3.1 score of 8.8 is derived from network accessibility (AV:N), low attack complexity (AC:L), low privilege requirement (PR:L), no user interaction (UI:N), unchanged scope (S:U), and high impact across confidentiality, integrity, and availability (C:H/I:H/A:H). The score reflects that a low-privilege authenticated user can achieve complete server compromise. However, the real-world risk is moderated by the requirement for W3 Total Cache or Borlabs Cache integration and legitimate Contributor access.
Frequently asked questions
Does my site need both W3 Total Cache AND Borlabs Cache for this vulnerability to apply?
No. The vulnerability applies if either W3 Total Cache or Borlabs Cache is enabled and integrated with AdRotate. Only one cache plugin needs to be active for the flaw to be exploitable.
Can a WordPress Editor account exploit this, or only Contributors?
The vulnerability is confirmed exploitable by Contributor-level users and above. Editors and Administrators have even higher privileges and can therefore exploit it. The key factor is that the attacker must be authenticated to the WordPress backend.
If I have no cache plugin installed, am I affected?
No. The vulnerability specifically requires W3 Total Cache or Borlabs Cache to be active. Disabling both plugins eliminates the attack vector entirely, though you should still upgrade the plugin when a patch becomes available.
What should I do if I discover a post with a suspicious adrotate shortcode?
Delete or restore the post to its prior revision immediately. Review the account that created or modified it for signs of compromise (unusual login locations, password changes, etc.). Scan the server for web shells or other malware. Consider forcing a password reset for all Contributor and Editor accounts as a precaution.
This analysis is provided for informational purposes and reflects the CVE and vendor information available as of the publication date. No exploit code or weaponized proof-of-concept is provided. Organizations must verify patch version numbers against official vendor advisories before deployment. This vulnerability requires authentication and specific cache plugin configuration; organizations should assess their own exposure based on their access control policies and installed plugins. SEC.co makes no warranty regarding the accuracy or completeness of this analysis and recommends consulting official vendor documentation and conducting independent security testing. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2026-10904HIGHChrome V8 Sandbox Escape Remote Code Execution
- CVE-2026-10928HIGHScript Injection in Google Chrome Headless – CVSS 8.8 High Severity
- CVE-2026-11231HIGHChrome Safe Browsing Code Execution on macOS – Patch Now
- CVE-2026-11688HIGHChrome SVG Sandbox Escape RCE Vulnerability – Patch Urgently
- CVE-2026-1829HIGHContent Visibility for Divi Builder Plugin RCE (v4.02 and below)
- CVE-2026-24155HIGHNVIDIA NeMo Framework Code Injection Vulnerability (CVSS 7.8)
- CVE-2026-25856HIGHOpenBullet2 Authenticated Remote Code Execution Vulnerability
- CVE-2026-34916HIGHRevive Adserver PHP Code Injection via Delivery Limitations