Skip to main content

Frappe Learning CVE-2025-62779

LOW
Cross-site Scripting (XSS) (CWE-79)
2025-10-27 security-advisories@github.com
1.2
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain authenticated job-posting account
  2. Exploit
    Inject HTML/script into Job Form field
  3. Execution
    Victim opens the Job Card page
  4. Impact
    Payload executes in victim browser session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated account with permission to create or edit a Job posting in Frappe Learning (2.39.1 and earlier), since the injection point is the Job Form input fields. Per the patch, only string fields OTHER than 'description' were unescaped and vulnerable. Execution further requires a second user (e.g., another learner or administrator) to view the affected Job Card, so the attack is gated by victim user interaction (UI:P) and does not fire automatically. These factors - authenticated access, limited vulnerable fields, and required victim viewing - substantially constrain real-world impact despite network reachability.

Impact

All signals converge on this being a genuinely low-priority issue rather than a high-CVSS flaw masquerading as low risk - the inputs are internally consistent. The vendor-assigned CVSS 4.0 base score is only 1.2, driven by AV:N (network-reachable web app) but offset heavily by PR:L (attacker must hold an authenticated account), UI:P (a victim must actively view the malicious content), and impact confined to the subsequent system (SC:L/SI:L) with zero impact on the vulnerable system itself (VC:N/VI:N/VA:N) - consistent with a stored XSS that only executes in another user's browser. EPSS reinforces this: 0.18% probability at the 7th percentile indicates negligible likelihood of exploitation activity. There is no CISA KEV listing and no public exploit identified, so this is not under active exploitation. No SSVC decision data was provided in the input. No signals conflict: low EPSS, no KEV, no POC, low CVSS, and an authenticated+interaction-gated stored XSS all agree this is a minor, defense-in-depth fix rather than an urgent remediation priority.

Exploit ScenarioDerived

An authenticated user with access to create or edit a Job posting enters HTML/JavaScript into a Job Form input field (any string field other than 'description'). When another user or administrator later views the resulting Job Card in the Frappe Learning frontend, the injected script executes in their browser session. No public exploit code is identified at the time of analysis, and the attack requires an authenticated account plus a victim viewing the crafted entry.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 08, 2026

Stored cross-site scripting (XSS) in Frappe Learning 2.39.1 and earlier allows an authenticated user with permission to create or edit Job postings to inject HTML into Job Form input fields (excluding the description field), which then executes in the context of another user who views the affected Job Card. Exploitation requires a valid account and victim interaction (viewing the job posting); no public exploit code has been identified, and the EPSS score is 0.18% (7th percentile), indicating very low predicted exploitation activity. The vendor has released a fix commit that escapes HTML in vulnerable fields.

RemediationAI

Apply the vendor patch by upgrading to a version that includes commit 75001b494d5d8198eab20b0cd85d5bd719448ea3 (available at https://github.com/frappe/lms/commit/75001b494d5d8198eab20b0cd85d5bd719448ea3), which adds HTML escaping for all job string fields except 'description'. If immediate upgrade is not possible, restrict the ability to create or edit Job postings to trusted users only (least privilege) to reduce the attack surface, and ensure server-side input validation or sanitization is applied as a compensating control. Additionally, consider monitoring for suspicious job postings containing HTML or script tags. The vendor advisory is at https://github.com/frappe/lms/security/advisories/GHSA-j6h8-qg65-3fpx. No public exploit code is known, but the fix should be applied promptly to prevent potential stored XSS attacks.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability is a CWE-79 improper neutralization of input during web page generation (cross-site scripting) in the Vue.js-based frontend of Frappe Learning. Specifically, the JobForm.vue component failed to sanitize user-supplied strings for job fields, allowing an authenticated user to inject HTML or script content. The patch commit (75001b4) adds an escapeHTML utility and applies it to all string fields except 'description' within a validateJobFields function, and also adds a 'break-all' CSS class to the JobCard component. The affected technology stack includes Frappe Learning LMS, a learning management system built on the Frappe framework. The CPE cpe:2.3:a:frappe:learning:*:*:*:*:*:*:*:* covers all versions, but the advisory confirms versions 2.39.1 and earlier are affected. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) indicates network reachability, low attack complexity, authenticated privileges required, and victim user interaction, with low confidentiality and integrity impact due to scope change.

Know when Frappe gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 1.2 LOW
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:U
vuln.today AI 5.4 MEDIUM

Authenticated user injects the payload (PR:L); a victim must view it (UI:R); script executes in the victim's browser across a trust boundary (S:C) with low confidentiality/integrity impact and no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

Frappe Learning is a learning system that helps users structure their content. In Frappe Learning 2.39.1 and earlier, users were able to add HTML through input fields in the Job Form.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche open-source learning management system, limited enterprise footprint
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

6
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +6
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Affected Products (CPE)CVE.org

cpe:2.3:a:frappe:learning:*:*:*:*:*:*:*:*

More in Frappe

View all
CVE-2025-67289 CRITICAL POC
9.6 Dec 22

Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on

CVE-2018-3885 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3884 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3883 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3882 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2025-66440 HIGH POC
8.8 Dec 15

Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c

CVE-2025-66439 HIGH POC
8.8 Dec 15

SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa

CVE-2025-66437 HIGH POC
8.8 Dec 15

Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A

CVE-2020-6145 HIGH POC
8.8 Aug 10

An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev

CVE-2026-39352 HIGH POC
8.7 May 20

Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie

CVE-2025-10655 HIGH POC
8.6 Dec 09

SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL

CVE-2025-52042 HIGH POC
8.2 Oct 01

In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy