Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!
CVE-2025-55903 — Proof of concept for CVE-2025-55903, a stored HTML injection in PerfexCRM allowing authenticated users to inject malicious HTML into invoices and client communications, leading to phishing and malware distribution. | Kitploit
Proof of concept for CVE-2025-55903, a stored HTML injection in PerfexCRM allowing authenticated users to inject malicious HTML into invoices and client communications, leading to phishing and malware distribution.
CVE-2025-55903: Stored HTML Injection in PerfexCRM
⚠️ Security Advisory
A critical Stored HTML Injection vulnerability affecting invoices, billing, and automated communications
📋 Overview
A Stored HTML Injection vulnerability has been discovered in PerfexCRM that allows authenticated users to inject malicious HTML into invoice descriptions, billing addresses, and client notes. This injected content persists in the database and is automatically rendered in client-facing emails and PDF attachments, enabling large-scale phishing attacks, business email compromise, and potential malware delivery.
🎯 Affected Versions
Product: PerfexCRM
Vulnerable Versions: < 3.3.1
Fixed Version: 3.3.1+
🔍 Vulnerability Details
Attribute
Value
CVE ID
CVE-2025-55903
Type
Stored HTML Injection
Attack Vector
Network/Remote
Authentication
Required (Low Privilege)
User Interaction
None
Severity
HIGH
CVSS v3.1
8.1 - High
Discoverer
Ajansha Shankar
Description
PerfexCRM fails to properly sanitize and encode HTML content in multiple user-editable fields. When authenticated users inject HTML payloads into invoice line item descriptions, billing address fields, or client notes, the content is stored in the database without adequate filtering. Subsequently, this malicious HTML is automatically rendered in client-facing emails and PDF attachments without proper escaping, leading to widespread distribution of phishing content and malware.
Affected Components
✗ Invoice line items (description field)
✗ Billing address fields
✗ Client note fields
✗ Client statement generation module
✗ PDF attachments
✗ Automated email system (recurring invoices, reminders)
Root Cause
❌ Insufficient input sanitization on invoice and billing fields
❌ Missing HTML output encoding in email templates and PDF generation
❌ Lack of content validation before storing in database
❌ No restrictions on HTML/JavaScript in client communications
💥 Impact
Security Implications
🎣 Phishing Attacks: Injected content can impersonate legitimate communications and redirect users to attacker-controlled sites
💼 Business Email Compromise: Malicious invoices sent to multiple clients appear to come from trusted source
🦠 Malware Distribution: Embedded malicious links or iframes can deliver malware via email/PDF
👥 Large-Scale Attack: Recurring invoices automatically distribute payload to multiple recipients without manual intervention
📊 Data Harvesting: Phishing payloads can harvest credentials from multiple clients simultaneously
CIA Triad Assessment
Factor
Impact
Explanation
Confidentiality
🔴 HIGH
Client credentials and sensitive data can be harvested via phishing
Integrity
🔴 HIGH
Malicious content can modify perception of communications
Availability
🟡 LOW
Limited direct impact on system availability
Real-World Attack Scenario
An attacker with low-privilege access creates an invoice with malicious HTML:
root@kitploit:~
<a href="https://attacker.com/fake-login">Click here to verify payment</a>
The invoice is sent to 50+ clients via automated email. All clients receive what appears to be a legitimate invoice directing them to a phishing site. The attacker harvests credentials from multiple victims simultaneously.
🧪 Proof of Concept
Environment Setup
Access to PerfexCRM admin panel with invoice creation permissions
Any version prior to 3.3.1
PoC Steps
Step 1: Access Invoice Creation
root@kitploit:~
Navigate to: PerfexCRM Admin Dashboard → Invoices → Create New Invoice
Step 2: Inject HTML Payload in Description Field
root@kitploit:~
<a href="https://attacker.com">Click here to view invoice</a>
<h1><font color=red>Visit Our New WebSite</font></h1>
<h3><mark><a href="https://evil.com">https://www.paytm.com/</a></mark></h3>
Step 5: Generate Email/PDF
Save the invoice
System automatically sends via email to client
Download PDF to verify HTML rendering
Step 6: Verify Attack
Check client email inbox
Open PDF attachment
Observe malicious HTML rendered in both
Expected Result
✅ Injected HTML renders in both email and PDF without escaping
✅ Links are clickable and redirect to attacker sites
✅ Images load from attacker-controlled servers
✅ Content persists across all future client communications
🛡️ Mitigation
For End Users
✅ Upgrade Immediately: Update to PerfexCRM v3.3.1 or later
🔍 Audit Invoices: Review recent invoices for suspicious HTML content
⚠️ Client Notification: Alert clients if suspicious invoices were sent
🔄 Credential Reset: Recommend clients change passwords if they clicked links
📝 Monitor Activity: Check invoice audit logs for unauthorized modifications