CVE-2026-34606
Stored XSS in Frappe LMS Versions
Publication date: 2026-04-02
Last updated on: 2026-04-07
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| frappe | learning | From 2.27.0 (inc) to 2.48.0 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |
Attack-Flow Graph
AI Powered Q&A
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
The provided context and resources do not include any information regarding the impact of CVE-2026-34606 on compliance with common standards and regulations such as GDPR or HIPAA.
Can you explain this vulnerability to me?
CVE-2026-34606 is a stored Cross-Site Scripting (XSS) vulnerability in the Frappe Learning Management System (LMS) affecting versions from 2.27.0 to before 2.48.0.
The vulnerability arises because HTML content extracted from various fields such as course descriptions, batch details, job opening descriptions, and user bios was sanitized by stripping HTML tags using BeautifulSoup's get_text() method but was not properly escaped before rendering.
This improper handling allowed attackers to inject malicious scripts that would be stored and later executed when the content was displayed to users, leading to stored XSS attacks.
The issue was fixed by applying an HTML escaping function (escape_html) to the extracted text, preventing execution of embedded scripts.
How can this vulnerability impact me? :
This stored XSS vulnerability can allow attackers to inject malicious scripts into the LMS content fields that are later executed in the browsers of users who view the affected content.
Such script execution can lead to unauthorized actions such as stealing user session cookies, performing actions on behalf of users, defacing content, or delivering malware.
Because the vulnerability requires no user interaction and can be triggered simply by viewing the stored content, it poses a significant security risk to users and administrators of the Frappe LMS.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability is a stored Cross-Site Scripting (XSS) issue in the Frappe LMS application affecting versions from 2.27.0 to before 2.48.0. Detection involves identifying if your system is running a vulnerable version of Frappe LMS and checking for stored malicious scripts in fields such as course descriptions, batch details, job opening descriptions, and user bios.
Since the vulnerability involves stored malicious scripts in the application database, detection can be done by querying the database for suspicious script tags or unusual HTML content in these fields.
- Check the version of Frappe LMS installed to confirm if it is between 2.27.0 and before 2.48.0.
- Run database queries to search for script tags in relevant fields, for example (assuming SQL): SELECT * FROM courses WHERE description LIKE '%<script>%';
- Similarly, query batch details, job opening descriptions, and user bios for embedded script tags.
Network detection of this vulnerability is not straightforward because it is a stored XSS issue triggered by rendering malicious content in the application UI rather than network traffic patterns.
What immediate steps should I take to mitigate this vulnerability?
The primary mitigation step is to upgrade the Frappe LMS application to version 2.48.0 or later, where the vulnerability has been patched.
The patch fixes the vulnerability by properly escaping HTML content extracted from user input fields, preventing malicious scripts from executing when rendered.
- Upgrade Frappe LMS to version 2.48.0 or newer.
- If immediate upgrade is not possible, review and sanitize stored content in the database fields such as course descriptions, batch details, job opening descriptions, and user bios to remove any embedded scripts.
- Implement additional input validation and output escaping in your application to prevent stored XSS.
Monitoring and restricting user input that can contain HTML or script tags can also help reduce risk until the patch is applied.