# CVE-2023-54408: Frappe HTML injection via weak escaping

Source: https://junglewise.ai/threats/cve-2023-54408-frappe-before-13-52-0-and-14-x-before-14-31-0-contains-an-html  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-12. Updated: 2026-10-16  
License: CC BY 4.0 with a link back

CVE-2023-54408 · Severity: medium · CVSS 6.1 · Published 2026-10-12

Frappe is a web application framework used to build enterprise resource planning (ERP) and business management systems. A vulnerability in how user-supplied content is escaped allows attackers to inject malicious HTML that executes as JavaScript in other users' browsers, potentially leading to account takeover or credential theft. An attacker can exploit this by submitting crafted HTML through the application that bypasses security checks and runs in the context of users viewing the affected content.

Technologies: [Frappe](https://junglewise.ai/threats/technologies/frappe). Vendors: [Frappe](https://junglewise.ai/threats/vendors/frappe).

## Quick answers

**Is CVE-2023-54408 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2023-54408 being exploited in the wild.

**How severe is CVE-2023-54408?** Medium severity, with a CVSS score of 6.1, published 12 October 2026.

**Which products and versions are affected?** Frappe before 13.52.0 and 14.x before 14.31.0.

**Is there a fix for CVE-2023-54408?** Yes: fixed in 13.52.0, 14.31.0. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2023-54408 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2023-54408?** Check whether you run Frappe at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in 13.52.0, 14.31.0

## Technical details

The vulnerability is a cross-site scripting (XSS) flaw caused by insufficient HTML escaping of user-supplied content rendered in web pages. It affects Frappe versions before 13.52.0 and 14.x before 14.31.0. An unauthenticated network attacker can submit malicious HTML that bypasses weak escaping filters; successful exploitation requires a user to view the affected page, resulting in arbitrary JavaScript execution in that user's browser context.

## Affected products

- Frappe Frappe before 13.52.0 and 14.x before 14.31.0

## Timeline

- 2023-08-28: disclosed
- 2026-10-12: advisory

## References

- [https://github.com/frappe/frappe/security/advisories/GHSA-4jj9-5vgc-gc4j](https://github.com/frappe/frappe/security/advisories/GHSA-4jj9-5vgc-gc4j)
- [https://www.vulncheck.com/advisories/frappe-before-14.31.0-html-injection-via-weak-escaping](https://www.vulncheck.com/advisories/frappe-before-14.31.0-html-injection-via-weak-escaping)

## Related threats

- [Frappe path traversal in file upload](https://junglewise.ai/threats/cve-2026-119145-frappe-before-15-121-0-and-16-x-before-16-34-0-contains-a-path)
- [Frappe open redirect in OAuth login flow](https://junglewise.ai/threats/cve-2026-66057-frappe-is-a-full-stack-web-application-framework-prior-to-15-116)
- [Frappe SQL injection in reportview get_count method](https://junglewise.ai/threats/cve-2026-55823-frappe-is-a-full-stack-web-application-framework-prior-to-16-23-0)
- [Frappe missing authorization in record modification](https://junglewise.ai/threats/cve-2026-109599-frappe-before-15-113-3-and-16-x-before-16-25-0-contains-a)
- [Frappe LDAP injection in endpoint parameters](https://junglewise.ai/threats/cve-2025-71431-frappe-before-14-99-2-and-15-x-before-15-86-0-contains-an-ldap)
