/

CVE-2025-71432

Severity:

HIGH RISK

(8.1)

Reflected XSS (CWE-79) in Frappe ERPNext Web Interface

CVE-2025-71432

Deferred

Vulnerability type

Category:

Cross-Site Scripting

CWE:

CWE-79

Impact:

Authenticated Session Compromise and Account Takeover

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Frappe ERPNext contains a reflected cross-site scripting vulnerability caused by insufficient input validation on a web page. An attacker may lure an authenticated user into opening a crafted URL, causing arbitrary JavaScript to execute in the user's session and potentially enabling account takeover.

Frappe ERPNext contains a reflected cross-site scripting vulnerability caused by insufficient input validation on a web page. An attacker may lure an authenticated user into opening a crafted URL, causing arbitrary JavaScript to execute in the user's session and potentially enabling account takeover.

Affected context

The issue affects Frappe ERPNext deployments using vulnerable releases in the 14.x or 15.x series. It occurs on a page that reflects attacker-controlled URL input into the application's response without adequate validation or output encoding. Exploitation generally depends on an authenticated user accessing the affected page through a crafted link.

The issue affects Frappe ERPNext deployments using vulnerable releases in the 14.x or 15.x series. It occurs on a page that reflects attacker-controlled URL input into the application's response without adequate validation or output encoding. Exploitation generally depends on an authenticated user accessing the affected page through a crafted link.

Exploit preconditions

  • Attack surface: A web page or endpoint that reflects request input into an HTML response
  • Required access: The victim must have an active authenticated ERPNext session
  • Attacker capability: Ability to deliver or socially engineer access to a crafted URL
  • Trigger point: The authenticated user opens the crafted link in a browser
  • Why exploitation is possible: Input is reflected without sufficient validation and context-appropriate output encoding, allowing browser-side script execution
  • Attack surface: A web page or endpoint that reflects request input into an HTML response
  • Required access: The victim must have an active authenticated ERPNext session
  • Attacker capability: Ability to deliver or socially engineer access to a crafted URL
  • Trigger point: The authenticated user opens the crafted link in a browser
  • Why exploitation is possible: Input is reflected without sufficient validation and context-appropriate output encoding, allowing browser-side script execution

Why this happens

The vulnerability results from treating request-controlled input as safe content when generating an HTML response. Because the affected page does not sufficiently validate or contextually encode reflected data, a browser may interpret attacker-controlled content as executable script. This behavior maps to CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').

The vulnerability results from treating request-controlled input as safe content when generating an HTML response. Because the affected page does not sufficiently validate or contextually encode reflected data, a browser may interpret attacker-controlled content as executable script. This behavior maps to CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').

Potential impact

  • An attacker may perform actions within the victim's authenticated session
  • Sensitive information displayed to the victim may be exposed
  • Session-related data could be targeted, depending on browser and application controls
  • The victim's account could be compromised
  • Malicious script could alter page content or conduct unauthorized transactions
  • An attacker may perform actions within the victim's authenticated session
  • Sensitive information displayed to the victim may be exposed
  • Session-related data could be targeted, depending on browser and application controls
  • The victim's account could be compromised
  • Malicious script could alter page content or conduct unauthorized transactions

General mitigation guidance

Mitigation typically focuses on eliminating unsafe reflection of request data and reducing the trust placed in browser-delivered input.

Common defensive patterns include:

  • Applying context-appropriate output encoding to all reflected values
  • Validating input against strict, expected formats and rejecting unnecessary data
  • Using secure templating mechanisms that escape output by default
  • Avoiding direct HTML construction from request parameters
  • Applying restrictive Content Security Policy controls where practical
  • Limiting account privileges and requiring additional authorization for sensitive actions
  • Protecting session cookies with appropriate secure, HttpOnly, and same-site controls

Mitigation typically focuses on eliminating unsafe reflection of request data and reducing the trust placed in browser-delivered input.

Common defensive patterns include:

  • Applying context-appropriate output encoding to all reflected values
  • Validating input against strict, expected formats and rejecting unnecessary data
  • Using secure templating mechanisms that escape output by default
  • Avoiding direct HTML construction from request parameters
  • Applying restrictive Content Security Policy controls where practical
  • Limiting account privileges and requiring additional authorization for sensitive actions
  • Protecting session cookies with appropriate secure, HttpOnly, and same-site controls

How teams detect issues like this

Organizations commonly identify reflected XSS risks through:

  • Static analysis rules for unescaped request parameters in HTML responses
  • Code review checks for string concatenation or template interpolation involving URL and form input
  • Dynamic security testing that evaluates reflected input across relevant pages and response contexts
  • Web application firewall or gateway policies for suspicious script-bearing requests, used as defense in depth
  • CI policy checks requiring output encoding and secure templating patterns

Automated application security testing and code review tools may help identify these patterns, but findings should be confirmed in the application's rendering context.

Organizations commonly identify reflected XSS risks through:

  • Static analysis rules for unescaped request parameters in HTML responses
  • Code review checks for string concatenation or template interpolation involving URL and form input
  • Dynamic security testing that evaluates reflected input across relevant pages and response contexts
  • Web application firewall or gateway policies for suspicious script-bearing requests, used as defense in depth
  • CI policy checks requiring output encoding and secure templating patterns

Automated application security testing and code review tools may help identify these patterns, but findings should be confirmed in the application's rendering context.

Sources

SourceLink
github.comgithub.com/frappe/erpnext/security/advisories/GHSA-f74g-9wxg-j83p
vulncheck.comvulncheck.com/advisories/frappe-erpnext-before-15.83.0-reflected-xss-leading-to-account-takeover

Frequently asked

questions

Yes, the attack can generally be initiated remotely by delivering a crafted URL. Successful exploitation still depends on an authenticated user opening that URL in a vulnerable ERPNext session.

Not necessarily. The key requirement is access to a victim who is already authenticated and can be induced to visit the affected page.

Remove unsafe reflection, validate input according to its expected format, and apply context-aware output encoding using secure-by-default templating.

Use centralized input-handling and output-encoding practices, review all user-controlled data flows into HTML, apply browser security policies, and include XSS testing in development and CI workflows.

Yes, the attack can generally be initiated remotely by delivering a crafted URL. Successful exploitation still depends on an authenticated user opening that URL in a vulnerable ERPNext session.

Not necessarily. The key requirement is access to a victim who is already authenticated and can be induced to visit the affected page.

Remove unsafe reflection, validate input according to its expected format, and apply context-aware output encoding using secure-by-default templating.

Use centralized input-handling and output-encoding practices, review all user-controlled data flows into HTML, apply browser security policies, and include XSS testing in development and CI workflows.

Find out what's already
exploitable in your codebase.