Skip to main content

Frappe HR CVE-2026-108733

| EUVDEUVD-2026-96899 MEDIUM
Missing Authorization (CWE-862)
2026-10-11 VulnCheck GHSA-7xfq-498m-4hrf
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege HRMS user
  2. Delivery
    Identify target employee's Leave Allocation name
  3. Exploit
    POST to whitelisted expire_allocation method
  4. Execution
    Server expires allocation without permission check
  5. Impact
    Victim's remaining leave balance wiped

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 HR instance - any ordinary logged-in user/employee, explicitly WITHOUT HR roles, is sufficient (PR:L). The attacker must know or enumerate the target's Leave Allocation document name, then issue a POST request to the whitelisted expire_allocation method, which is exposed by default and performs no permission check (CWE-862). Limiting factors: exploitation needs an authenticated account (not reachable by fully anonymous attackers), no user interaction from the victim, and impact is confined to integrity of leave-balance data (no confidentiality or availability impact); affects all 14.x and 15.x releases through 15.64.3 and versions before 16.11.0 in default configuration.

Impact

This is a medium-severity, insider-oriented data-integrity flaw rather than a mass-exploitation emergency. The vendor-supplied CVSS 4.0 vector (5.3, AV:N/AC:L/AT:N/PR:L/UI:N) confirms network reachability and low complexity but requires an authenticated low-privilege account (PR:L), and the impact is limited to integrity of leave data (VI:L) with no confidentiality (VC:N) or availability (VA:N) impact - consistent with CWE-862 Missing Authorization. No EPSS score and no SSVC decision data are present in the input, so exploitation probability and the automatable/technical-impact dimensions cannot be quantified; this gap should be noted when prioritizing. The CVE is NOT in CISA KEV and there is no explicit POC flag, though a detailed public technical writeup (HackMD) and a VulnCheck advisory exist, lowering the effort to reproduce. Netting the signals: the PR:L requirement means the realistic threat actor is a malicious or compromised internal user, and the blast radius is limited to overwriting another employee's leave balance - meaningful HR-data tampering, but not remote code execution or data theft. Treat as a prompt patch item (fix is available in 16.11.0) rather than a drop-everything priority; the absence of EPSS/KEV supports targeted/opportunistic insider abuse over widespread automated exploitation.

Exploit ScenarioDerived

A disgruntled employee holding an ordinary HRMS login (no HR role) sends a crafted POST request to the whitelisted expire_allocation method, naming a coworker's Leave Allocation document. Because the method omits an authorization check, the server expires that allocation and zeroes the victim's remaining leave balance. A public technical writeup on HackMD describes the flaw in detail, lowering the barrier to reproduction, though no formal exploit-code flag is provided in the input.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 11, 2026

Missing authorization in Frappe HR (hrms) lets any authenticated user - including ordinary employees with no HR role - zero out another employee's leave allocation by POSTing the target Leave Allocation record name to the whitelisted expire_allocation method, silently wiping that employee's remaining leave balance. The flaw affects all 14.x and 15.x releases through 15.64.3 and every build before 16.11.0, is exploitable in the default configuration with only a low-privileged session and no victim interaction, and is confined to data integrity (no confidentiality or availability impact). No public exploit identified at time of analysis, and a vendor-released patch (16.11.0) is available, so this is best treated as a medium-severity, insider-oriented data-integrity issue rather than a mass-exploitation emergency.

RemediationAI

Upgrade Frappe HR to 16.11.0 or later (release tag: https://github.com/frappe/hrms/releases/tag/v16.11.0), which contains the vendor fix; sites pinned to the 15.x or 14.x branches should backport or cherry-pick upstream commit 6ab7a50347367413b78ad5bd5d9e4b8c6653c81f, noting that it applies permission guards across many doctypes, so partial application may leave sibling endpoints vulnerable. If immediate upgrade is not possible, the targeted compensating control is to remove or restrict the expire_allocation whitelist entry - e.g. strip the @frappe.whitelist() decorator from expire_allocation on the Leave Allocation controller or gate it behind a custom role check - understanding that such edits are overwritten by the next app update and therefore must be tracked as temporary. A lower-touch alternative is to tighten Frappe role permissions on Leave Allocation and Leave Ledger Entry so that only HR Manager/HR User roles hold write or submit rights and the endpoint's internal document access fails closed; the trade-off is that misconfigured role permissions can break legitimate leave accrual, expiry, and payroll jobs, so test in staging and keep the custom roles narrow. Regardless of approach, audit Leave Ledger Entry and Leave Allocation records for unexplained zero-balance or expiry entries and alert on POSTs to /api/method/...expire_allocation originating from accounts without HR roles.

Affected VersionsENISA

hrms 0 <16.11.0

Affected Packages

euvd hrms fix: 16.11.0

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

Frappe HR is the HR/payroll application built on the Frappe framework (the same low-code platform behind ERPNext), where server-side functions decorated with @frappe.whitelist() become directly reachable over HTTP as /api/method/<dotted.path> endpoints. The vulnerable method expire_allocation sits on the Leave Allocation domain object and manipulates Leave Ledger Entry records - the append-only ledger that computes an employee's available leave - via the code path visible in hrms/hr/doctype/leave_ledger_entry/leave_ledger_entry.py (lines 199-228). Because the method never called frappe.has_permission() against the Leave Allocation or Leave Ledger Entry doctype before mutating the ledger, the framework's default doctype/role permission model was simply bypassed; the root cause maps to CWE-862 (Missing Authorization), a broken-access-control class in which authentication is enforced but object-level authorization is not. The provided upstream commit 6ab7a50347367413b78ad5bd5d9e4b8c6653c81f shows the vendor applying the same fix pattern broadly across the codebase - inserting frappe.has_permission("<Doctype>", "read"/"write", <docname>, throw=True) and self.check_permission("write") guards in attendance, appraisal, expense claim, onboarding, roster, and file-upload paths - indicating this CVE is one instance of a systemic authorization-hardening sweep rather than an isolated coding error. The CPE cpe:2.3:a:frappe:hrms:*:*:*:*:*:*:*:* captures the entire hrms package across all versions prior to the fix.

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 (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Remote whitelisted endpoint reachable by any authenticated user (AV:N/AC:L/PR:L/UI:N); only another user's leave data is tampered, so C:N, I:L, A:N and no scope change.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Frappe HR (hrms) before 16.11.0, including all 14.x and 15.x releases through 15.64.3, contains a missing authorization vulnerability in the whitelisted expire_allocation method that allows authenticated users to expire any leave allocation. Attackers without HR roles can name another employee's Leave Allocation in a POST request to zero its allocated leaves and wipe that employee's remaining leave balance.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Medium
popular open-source HR module on Frappe/ERPNext, mainly SMB adoption
Data Quality
5 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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