CVE-2025-3219 Overview
CVE-2025-3219 is a stored cross-site scripting (XSS) vulnerability in CodeCanyon Perfex CRM version 3.2.1. The flaw resides in the Project Discussions Module, accessible through the /perfex/clients/project/2 endpoint. Attackers can inject malicious script payloads through the description argument, which the application stores and later renders without proper sanitization. The vulnerability is classified under [CWE-79], improper neutralization of input during web page generation. Public disclosure of the exploit details has occurred, increasing the likelihood of opportunistic abuse against unpatched Perfex CRM deployments handling customer project data.
Critical Impact
Authenticated attackers can inject persistent JavaScript into project discussions, enabling session hijacking, credential theft, and unauthorized actions in the context of other authenticated CRM users.
Affected Products
- CodeCanyon Perfex CRM 3.2.1
- Project Discussions Module component
- Deployments exposing /perfex/clients/project/* to authenticated client users
Discovery Timeline
- 2025-04-04 - CVE-2025-3219 published to the National Vulnerability Database (NVD)
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-3219
Vulnerability Analysis
The vulnerability affects the Project Discussions Module in Perfex CRM 3.2.1, a widely used PHP-based customer relationship management application. When a user submits content to a project discussion through the /perfex/clients/project/2 endpoint, the application accepts the description parameter and persists it in the database. On subsequent rendering, the stored value is returned to viewers without adequate HTML encoding or contextual output sanitization.
Because the payload is persistent, every user who loads the affected project view executes the injected script in their browser session. This gives an attacker with low privileges an amplification path against higher-privileged users such as staff or administrators reviewing client projects.
Exploitation requires network access and an authenticated session with permission to post to project discussions. User interaction is required to trigger the payload, since a victim must load the compromised project view.
Root Cause
The root cause is missing output encoding of user-controlled input in the discussion rendering path. The description field is treated as trusted HTML rather than as untrusted text that must be escaped for the HTML context. This is a textbook [CWE-79] failure to neutralize script content before returning it in a web response.
Attack Vector
An authenticated attacker submits a crafted discussion entry containing JavaScript in the description parameter through the Project Discussions Module. The malicious payload persists in the Perfex CRM database. When another authenticated user, including staff or administrators, opens the affected project, their browser executes the injected script under the application's origin. Consequences include session token theft, forced CSRF actions, defacement of the CRM interface, and pivoting into administrative functionality if a privileged user is targeted.
Refer to the GitHub Stored XSS Research writeup for reproduction details.
Detection Methods for CVE-2025-3219
Indicators of Compromise
- Project discussion entries containing HTML tags such as <script>, <img onerror=>, or <svg onload=> in the description field
- Outbound HTTP requests from CRM user browsers to unknown domains shortly after loading a project page
- Unexpected session token usage or administrative actions originating from staff accounts that recently viewed a client project
Detection Strategies
- Query the Perfex CRM database for rows in project discussion tables containing script tags or JavaScript event handlers in the description column
- Deploy web application firewall (WAF) rules that inspect POST requests to /perfex/clients/project/* for common XSS payload patterns
- Enable Content Security Policy (CSP) reporting to capture inline script violations triggered by stored payloads
Monitoring Recommendations
- Log and review all POST requests to project discussion endpoints, correlating source IP, authenticated user, and payload size
- Monitor for anomalous session activity following project view events, including impossible-travel logins and privilege changes
- Alert on database writes to discussion tables containing angle brackets or JavaScript keywords such as onerror, onload, and javascript:
How to Mitigate CVE-2025-3219
Immediate Actions Required
- Restrict access to the Project Discussions Module to trusted users pending a vendor patch
- Audit existing project discussion records for stored payloads and sanitize or remove offending entries
- Rotate session tokens and administrative credentials for any user who accessed a suspect project view
- Deploy a WAF rule that blocks script-injection patterns targeting the description parameter on /perfex/clients/project/*
Patch Information
No vendor advisory or patch URL was published in the NVD record at the time of writing. Perfex CRM administrators should monitor the CodeCanyon Perfex CRM product page and vendor communications for a fixed release beyond 3.2.1. Until an official patch is available, apply the workarounds below.
Workarounds
- Implement a strict Content Security Policy that disallows inline scripts and restricts script sources to trusted origins
- Add server-side output encoding for the description field, escaping HTML special characters before rendering
- Limit discussion posting permissions to a minimal set of vetted client accounts
- Deploy virtual patching through a reverse proxy or WAF that strips or rejects HTML tags in discussion submissions
# Example ModSecurity rule to block script payloads in the description parameter
SecRule REQUEST_URI "@beginsWith /perfex/clients/project/" \
"phase:2,chain,deny,status:403,id:1003219,msg:'CVE-2025-3219 Perfex CRM XSS attempt'"
SecRule ARGS:description "@rx (?i)(<script|onerror=|onload=|javascript:)" \
"t:none,t:urlDecodeUni,t:htmlEntityDecode"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

