SECURITYCRITICALCVE-2026-81402

DS Ad Rotator Plugin Flaw Allows Unauthenticated RCE on WordPress

CVE-2026-81402 lets unauthenticated attackers upload arbitrary PHP files through the DS Ad Rotator plugin's unprotected image upload handler.

Dylan H.

Security Team

September 12, 2026
4 min read
DS Ad Rotator Plugin Flaw Allows Unauthenticated RCE on WordPress

Critical severity

Rated critical. Prioritise patching — see the remediation guidance below.

Affected Products

  • DS Ad Rotator Plugin ≤ 0.8

Executive Summary

A critical unauthenticated arbitrary file upload vulnerability (CVE-2026-81402) has been disclosed in the DS Ad Rotator plugin for WordPress. The plugin's image upload handler performs no capability check, no nonce verification, and no file-type validation, allowing anyone on the internet — no account required — to upload arbitrary files, including PHP webshells, to a web-accessible directory.

CVSS Score: 9.8 (Critical)

This is as close to a worst-case WordPress plugin flaw as it gets: zero authentication, zero validation, and a direct path to remote code execution.


Vulnerability Overview

AttributeValue
CVE IDCVE-2026-81402
CVSS Score9.8 (Critical)
TypeUnrestricted Upload of File with Dangerous Type (CWE-434)
Attack VectorNetwork (no authentication required)
Privileges RequiredNone
User InteractionNone

Affected Versions

PluginAffected VersionsFixed Version
DS Ad Rotator≤ 0.8Not yet published at time of writing

Attack Vector

1. Attacker identifies a WordPress site running DS Ad Rotator
2. Attacker sends an unauthenticated request directly to the plugin's
   image upload endpoint
3. Handler accepts the upload without checking capability, nonce, or
   file type
4. Malicious PHP file (webshell) is written to a web-accessible directory
5. Attacker accesses the uploaded webshell via HTTP
6. Full server compromise — database access, file manipulation,
   lateral movement

Impact of Successful Exploitation

ImpactDescription
Remote Code ExecutionExecute arbitrary PHP code on the server
Database CompromiseFull read/write via wp-config.php credentials
Data ExfiltrationAccess all site content and user data
Webshell PersistenceUploaded files can survive plugin updates
Malware DistributionServe malware to site visitors

Immediate Remediation

Step 1: Check for a Patch

No fixed version was available at time of disclosure — check the plugin's WordPress.org page or WPScan advisory for updates.

wp plugin get ds-ad-rotator --field=version

Step 2: Remove or Disable the Plugin

Given the lack of a patch and the trivially exploitable nature of this flaw:

  1. Deactivate and remove DS Ad Rotator immediately
  2. Block direct access to the plugin's upload endpoint at the web server or WAF level as an interim measure if removal isn't possible right away

Step 3: Scan for Existing Compromise

# Search for recently uploaded PHP files in unexpected locations
find /path/to/wordpress/wp-content/ -name "*.php" -newer /path/to/wordpress/wp-includes/version.php -type f
 
# Check for common webshell signatures
grep -rl "eval\s*(base64_decode" /path/to/wordpress/wp-content/
grep -rl "system\s*(" /path/to/wordpress/wp-content/uploads/
 
# Verify WordPress core integrity
wp core verify-checksums

Detection Indicators

IndicatorDescription
POST requests to DS Ad Rotator upload endpointsExploitation attempts
Unexpected PHP files in uploads directoriesWebshells dropped through the vulnerability
Access to newly created PHP filesAttacker accessing an uploaded webshell
Outbound connections from the web serverPost-exploitation data exfiltration

Post-Remediation Steps

  1. Remove the plugin unless and until a patch is released
  2. Scan the installation for webshells and unauthorized file changes
  3. Review user accounts for unauthorized administrators
  4. Rotate all credentials — WordPress admin, database, API keys
  5. Regenerate WordPress security keys using wp config shuffle-salts
  6. Deploy a WAF (Wordfence, Sucuri) for ongoing protection

References