# CVE-2023-54409: Frappe cross-site scripting in html2text

Source: https://junglewise.ai/threats/cve-2023-54409-frappe-before-13-46-1-and-14-x-before-14-20-0-contains-a-cross  
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-54409 · Severity: medium · CVSS 4.8 · Published 2026-10-12

Frappe is an open-source framework used to build web applications and ERPs. Authenticated users can craft malicious HTML that bypasses sanitization in the html2text function, allowing them to inject JavaScript that executes in other users' browsers when they view the rendered content. This could lead to session theft, data exfiltration, or account compromise.

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

## Quick answers

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

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

**Which products and versions are affected?** Frappe before 13.46.1, 14.x before 14.20.0.

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

**How is CVE-2023-54409 attacked?** It is attacked over the network.

**Am I affected by CVE-2023-54409?** 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.46.1, 14.20.0

## Technical details

The vulnerability exists in the html2text function which insufficiently sanitizes user-supplied HTML input, allowing script injection (CWE-80). Exploitation requires authentication and user interaction (viewing the content), and is delivered over the network. An attacker can execute arbitrary JavaScript in victim browsers with access to high confidentiality data within the application context.

## Affected products

- Frappe Frappe before 13.46.1, 14.x before 14.20.0

## Timeline

- 2023-07-12: disclosed
- 2026-10-12: advisory

## References

- [https://github.com/frappe/frappe/security/advisories/GHSA-wp7j-3w22-93j6](https://github.com/frappe/frappe/security/advisories/GHSA-wp7j-3w22-93j6)
- [https://www.vulncheck.com/advisories/frappe-before-13.46.1-xss-via-html2text-weak-sanitization](https://www.vulncheck.com/advisories/frappe-before-13.46.1-xss-via-html2text-weak-sanitization)

## 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)
