Skip to main content

Frappe Learning CVE-2025-62158

LOW
Information Exposure (CWE-200)
2025-10-10 security-advisories@github.com
2.7
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Obtain student-file URL (shared/leaked)
  2. Exploit
    Request public file endpoint unauthenticated
  3. Impact
    Retrieve exposed assignment attachment

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

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

Exploitation Conditions

Exploitation requires a Frappe Learning instance prior to 2.38.0 where students have uploaded assignment attachments; because the default upload path stored these as public files, no authentication or special configuration is needed to retrieve them. The concrete limiting factor is that an attacker must possess or discover the specific file URL - the fix (adding private: true to the assignment upload args in Assignment.vue) makes clear the exposure is via the public-file mechanism, so practical risk hinges on URL leakage (shared links, referrer headers, logs) or URL predictability rather than open file listing. Impact is confined to confidentiality of student-uploaded assignment content; no write or availability impact exists.

Impact

This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes unauthenticated network reachability, but the only impact metric set is VC:L (low confidentiality) with VI/VA:N, yielding a base score of just 2.7 - the vulnerability leaks data but cannot modify or deny anything. EPSS reinforces low urgency at 0.29% (19th percentile), and the CVSS 4.0 exploit-maturity metric is E:U (unreported/unproven). There is no CISA KEV listing and no public exploit identified at time of analysis, so this is not under active exploitation. The one nuance worth flagging: PR:N plus the description's 'anyone with the file URL could access these files without authentication' means the true barrier is not authentication but knowledge of the (typically non-enumerable) file URL - so real-world exposure depends on URL leakage (shared links, referrer headers, logs, enumeration) rather than open directory browsing. Net assessment: a real but minor information-disclosure bug affecting student privacy, not an infrastructure-compromise priority; patch on a normal maintenance cycle.

Exploit ScenarioDerived

A student uploads an assignment attachment (e.g., containing personal or academic information) to a Frappe Learning instance running a version prior to 2.38.0, where it is stored as a public file. An attacker who obtains or guesses the file's URL - through a shared link, browser history, referrer leakage, or log exposure - retrieves the attachment over the network without any authentication. No public exploit code is required; access is a simple unauthenticated HTTP GET to the file URL.

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

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

Alert me

AnalysisAIv1 – Oct 08, 2026

Frappe Learning (frappe/lms) versions prior to 2.38.0 stored student-uploaded assignment attachments as public files, so anyone who obtains or guesses the file URL can download them without authentication. The exposure is unauthenticated per the CVSS vector (PR:N) but is gated by URL knowledge - there is no open directory listing described, so practical risk depends on link leakage via referrer headers, shared links, logs, or guessable paths. Vendor-released patch: 2.38.0, which forces assignment uploads to be private by default; EPSS is low at 0.29% (19th percentile), no public exploit code has been identified at time of analysis, and the issue is not in CISA KEV. Impact is confidentiality-only, confined to student-submitted assignment content.

RemediationAI

Vendor-released patch: upgrade Frappe Learning (frappe/lms) to 2.38.0 or later, which passes private:true into the assignment upload component so student attachments are stored as private files and served through permission-checked /private/files/ paths; apply the same change if you maintain a fork, mirroring commit 78640561f558a6c7396f8be48874f79a54f03420 and the frappe-ui ^0.1.201 bump needed to honor the uploadArgs. Because the fix changes the default for new uploads, verify whether attachments submitted before the upgrade were retroactively reclassified - the advisory does not state this - and if they remain public, manually mark those File records as private (or move them under the private file directory), accepting a brief window where legitimate assignment links break and must be re-issued to students and instructors. If you cannot upgrade immediately, a compensating control is to block or require authentication for the specific public assignment file paths at the reverse proxy or web server; the trade-off is that /files/ is also used for legitimate public site assets, so any blanket rule there can break images, themes, and public course material, meaning the rule must be scoped narrowly to assignment upload paths. Tightening URL secrecy alone (avoiding link sharing, stripping referrer headers, scrubbing file URLs from logs and analytics) reduces but does not eliminate exposure, since it does not change the underlying access control. Review web and proxy logs for previously exposed attachment URLs to assess whether any student submissions were accessed by unauthorized parties, and note that no public exploit code has been identified at time of analysis, so exploitation would likely require targeted URL discovery rather than automated scanning.

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

Frappe Learning is a learning management system built on the Frappe framework (the same platform underlying ERPNext), where uploaded content is represented by the File doctype and carries an is_private flag. Files flagged public are served from the /files/ path and are retrievable by guest users who know the URL, whereas private files are served from /private/files/ and gated by Frappe's permission checks. In this case the frontend assignment upload flow in frontend/src/components/Assignment.vue did not pass private:true, so attachments landed in the public bucket; the upstream fix adds :uploadArgs="{ private: true }" to the upload component and bumps the frappe-ui dependency from ^0.1.200 to ^0.1.201 (submodule c9a0fc9 -> 8b85a70) to support those upload arguments. The root cause maps to CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) - a missing access-control designation on a stored resource rather than an injection or memory-safety flaw, which explains the low assessed CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N profile (confidentiality-only, no integrity or availability impact) and the 2.7 CVSS:4.0 score in the NVD feed.

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 2.7 LOW
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:U
vuln.today AI 5.3 MEDIUM

Unauthenticated network retrieval of public files (AV:N/PR:N/UI:N); only confidentiality of student files is affected (C:L, I:N, A:N); AC:L matches the vendor vector though URL knowledge is a practical barrier.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

DescriptionCVE.org

Frappe Learning is a learning system that helps users structure their content. In versions prior to 2.38.0, the system did stored the attachments uploaded by the students in their assignments as public files. This issue potentially exposed student-uploaded files to the public. Anyone with the file URL could access these files without authentication. The issue has been fixed in version 2.38.0 by ensuring all student-uploaded assignment attachments are stored as private files by default.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
niche open-source learning-management app, 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.3%
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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Low

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)CVE.org

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

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