CVE-2026-44205 Overview
CVE-2026-44205 is a stored cross-site scripting (XSS) vulnerability in Frappe, a full-stack Python and JavaScript web application framework. The flaw exists in the user profile image section of versions prior to 15.106.0. An attacker can inject malicious JavaScript that executes in the browsers of other users who view the affected profile. The vulnerability is classified under CWE-79, Improper Neutralization of Input During Web Page Generation. Frappe has patched the issue in version 15.106.0.
Critical Impact
Authenticated attackers can store malicious scripts in user profile image fields, leading to script execution in other users' browser sessions and potential session hijacking or UI manipulation.
Affected Products
- Frappe Framework versions prior to 15.106.0
- Applications built on the vulnerable Frappe versions (including ERPNext deployments)
- Self-hosted Frappe instances exposing user profile functionality
Discovery Timeline
- 2026-06-12 - CVE-2026-44205 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2026-44205
Vulnerability Analysis
The vulnerability is a stored XSS flaw in the Frappe framework's user profile image handling logic. Frappe fails to properly neutralize user-supplied input that is rendered in the profile image section of user-facing pages. An attacker with permission to modify their own profile can submit payloads containing JavaScript constructs that the application later returns to other users without sufficient encoding or sanitization.
When a victim views the malicious profile or any view that renders the affected field, their browser parses the injected script in the application's origin. This allows the attacker to perform actions in the victim's authenticated session, exfiltrate cookies that lack HttpOnly, or manipulate the rendered DOM. The exploit requires no user interaction beyond browsing to a page that displays the affected profile data.
Root Cause
The root cause is missing or insufficient output encoding when rendering values associated with the user profile image field. The framework treats stored data as trusted markup rather than escaping HTML-significant characters such as <, >, ", and '. This permits HTML or attribute-context injection at render time.
Attack Vector
Exploitation occurs over the network against any Frappe deployment running an unpatched version. An attacker authenticates, edits their profile, and supplies a payload in the profile image input that breaks out of its intended context. The stored payload triggers when any user, including administrators, loads a page that renders the field. No verified public proof-of-concept code is available. Refer to the GitHub Security Advisory GHSA-2wx6-8gmq-x4fw for technical specifics.
Detection Methods for CVE-2026-44205
Indicators of Compromise
- Profile image field values containing HTML tags, javascript: URIs, or event-handler attributes such as onerror and onload
- Unexpected outbound requests from user browsers to attacker-controlled domains shortly after loading user directory or profile pages
- Anomalous administrator session activity following profile views, such as new API keys or role assignments
Detection Strategies
- Review database records for the user profile image column and search for strings containing <script, onerror=, onload=, or javascript:
- Inspect HTTP request bodies sent to user profile update endpoints for markup or encoded script payloads
- Enable and audit Content Security Policy (CSP) violation reports for inline script and unsafe-eval blocks originating from profile pages
Monitoring Recommendations
- Log all PUT and POST requests targeting /api/method/frappe.client.set_value and user document update endpoints
- Alert on profile field changes that include angle brackets or known XSS sinks in input validation pipelines
- Correlate session activity with profile view events to identify post-exploitation lateral actions
How to Mitigate CVE-2026-44205
Immediate Actions Required
- Upgrade Frappe to version 15.106.0 or later across all production, staging, and development environments
- Audit existing user profile records for stored payloads and sanitize or reset any fields containing HTML or script content
- Rotate session cookies and API keys for accounts that may have viewed exploited profiles
Patch Information
Frappe addressed the vulnerability in version 15.106.0. The fix introduces proper output encoding for the user profile image field. Administrators should apply the upstream release using bench update or pull the patched container image. Details are published in the Frappe GitHub Security Advisory GHSA-2wx6-8gmq-x4fw.
Workarounds
- Restrict profile editing permissions to trusted roles until the patch is deployed
- Deploy a web application firewall rule that blocks HTML markup and script tokens in profile update request bodies
- Enforce a strict Content Security Policy that disallows inline scripts on authenticated user-facing pages
# Upgrade Frappe to the patched release
bench update --reset
bench --site all migrate
bench version | grep frappe # confirm frappe >= 15.106.0
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

