Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege employee
-
ExploitAlter employee identifier in PWA API request
-
ExecutionBypass missing authorization check
-
ImpactRead another employee's sensitive HR records
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated session on the Frappe HRMS instance (any employee-level account suffices, PR:L) and that the deployment exposes the PWA (progressive web app) employee-data API endpoints that relied on the unprivileged frappe.get_all query. The attacker manipulates the employee identifier in those PWA API requests to retrieve another employee's records. Limiting factors that reduce real-world risk: exploitation is read-only (confidentiality impact only, no integrity/availability effect), it needs authentication so it is not exploitable by anonymous external attackers, and only instances running versions prior to 15.58.3 (15.x) or 16.4.3 (16.x) with the PWA in use are affected. |
| Impact | This is a broken-object-level-authorization (IDOR) flaw in Frappe HRMS PWA API endpoints, rated CVSS 6.5 (medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N. The signals are internally consistent: network-reachable (AV:N) and low-complexity (AC:L), but exploitation requires an authenticated account (PR:L), and impact is confidentiality-only (C:H, I:N, A:N) - matching the description, which states 'an authenticated user' reads other employees' records. No EPSS score, no CISA KEV listing, and no public POC were provided in the input, so there is no signal of active or widespread exploitation; status is best described as no public exploit identified at time of analysis. The real-world risk is therefore an insider/horizontal-access threat rather than an external pre-auth breach: any user who can log into the HRMS (potentially every employee) could read colleagues' sensitive HR data. This is a legitimate privacy/compliance priority for organizations running many PWA users, but it is not an internet-facing unauthenticated emergency. The vendor fix is corroborated by source evidence (the commit swaps the permission-ignoring frappe.get_all for the permission-aware frappe.get_list), which strongly confirms the root cause is a missing authorization enforcement rather than an authentication bypass. |
| Exploit ScenarioDerived | A low-privilege authenticated employee logged into the Frappe HRMS progressive web app calls the employee-data PWA API endpoints and substitutes another employee's identifier in the request. Because the endpoints used frappe.get_all (which bypasses user permission checks), the server returns records belonging to the other employee, exposing sensitive HR data. No public exploit code was identified in the provided data; exploitation is simple API parameter manipulation requiring a valid session. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Authenticated users of Frappe HRMS (Frappe HR) can read sensitive HR records belonging to other employees because the product's PWA employee-data API endpoints fail to enforce object-level authorization prior to versions 15.58.3 (15.x branch) and 16.4.3 (16.x branch). Rated CVSS 6.5 (medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, the flaw is a read-only confidentiality breach: no integrity or availability impact, and it requires a valid employee-level session, so anonymous external attackers cannot exploit it. Exploitation only works where the deployment exposes the affected PWA endpoints; no public exploit code has been identified at time of analysis, and there is no CISA KEV confirmation of active exploitation. Vendor-released patch: 15.58.3 and 16.4.3.
RemediationAI
Upgrade to Frappe HRMS 15.58.3 (15.x branch) or 16.4.3 (16.x branch); these are the vendor-released fixed versions, and the two upstream commits (6214ec8db13c587e05150bdf3e4e9e5d28b7fd94 and eefb8f4552d0e1e09ee4abae4fdc76fc5473e00a) show the change from frappe.get_all to the permission-aware frappe.get_list. Details are in advisory GHSA-wfc6-cw72-cvhx. If an immediate upgrade is not possible, treat the exposure as a data-confidentiality problem that only an authenticated insider or compromised low-privilege account can trigger: restrict network access to the HRMS PWA endpoints (for example via reverse-proxy rules or IP allowlisting) so only trusted networks can reach them, with the trade-off that off-site or mobile PWA users lose functionality; or disable/remove the PWA app from the deployment until patched, which removes the attack surface but disables the PWA user experience for all staff. Because exploitation is read-only and authenticated, also review HRMS access logs for authenticated sessions requesting employee records outside their own employee ID, invalidate or rotate credentials of any suspicious accounts, and enforce least-privilege role assignment so fewer accounts can reach employee-data endpoints at all. Note that generic input filtering or WAF rules are unlikely to be reliable here, since the request is well-formed and the defect is missing authorization, not malformed input.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-862 (Missing Authorization): the affected Frappe HRMS PWA API handlers, including the employee-info endpoint in hrms/api/__init__.py, used Frappe's frappe.get_all query helper, which performs database reads without applying the requesting user's permission rules. The upstream fix replaces frappe.get_all with frappe.get_list, the permission-aware counterpart that filters results by the session user's roles and document permissions - a direct object-level authorization (IDOR-style) correction rather than a filter or input-validation change. This class of defect is common in Frappe/ERPNext applications, where the distinction between get_all and get_list is a frequent source of broken access control: get_all is intended only for privileged server-side contexts, while get_list enforces user permissions. Because the vulnerable surface is the HRMS progressive web app employee-data API, exposure is limited to instances that actually serve the PWA endpoints; the affected package is identified as cpe:2.3:a:frappe:hrms:*:*:*:*:*:*:*:* with all versions below the fixed releases covered by the wildcard.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Authenticated low-privilege user (PR:L) exploits over the network API (AV:N) with low complexity and no interaction; read-only cross-employee data exposure gives C:H, I:N, A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Frappe HR is an open-source human resources management solution (HRMS). Prior to 15.58.3 and 16.4.3, HRMS PWA API endpoints for employee data do not consistently authorize employee-specific PWA API requests. An authenticated user requests records associated with another employee. The user can request records associated with another employee through PWA API endpoints. Successful exploitation can access sensitive HR data belonging to other employees. This issue is fixed in versions 15.58.3 and 16.4.3.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c
SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A
An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev
Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie
SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL
In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re
EUVD-2026-103173
NVD
CVE.org
GitHub
Exploit-DB