Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as portal user
-
ExploitInvoke get_timesheet_html for target project
-
ImpactHarvest exposed timesheet names, dates and modifiers
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
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 | The attacker must hold an authenticated ERPNext portal account (customer/project portal user) that has been granted read access to a target Project, on an affected version 15.55.0 through 16.50.0. Exploitation specifically abuses the get_timesheet_html method in erpnext/templates/pages/projects.py, which validated only Project read access while ignoring the hide_timesheets flag and the project-membership (portal_users) association. Limiting factors: a valid portal login is required (no anonymous access), and the disclosed data is restricted to timesheet metadata - names, status, time-log dates and last modifiers - not full timesheet content, with no write or availability impact. Deployments that do not expose the project/customer portal to untrusted users, or that have upgraded past 16.50.0, are not exploitable. |
| Impact | This is a medium-severity information-disclosure flaw (CVSS 4.0 base 5.3) whose real-world urgency is modest rather than critical. The CVSS vector (AV:N/AC:L/PR:L/UI:N) confirms a network-reachable, low-complexity attack requiring an authenticated portal account (PR:L), with impact limited to confidentiality (VC:L) and no integrity or availability effect - consistent with the description, which describes leaking timesheet metadata, not code execution or data modification. No EPSS score, CISA KEV entry, or SSVC decision data was supplied, and no public exploit was referenced; the only exploitation-related artifact is the vendor fix commit, which is remediation, not weaponized exploit code. These signals are internally consistent and all point to a bounded, authorization-only issue: a legitimate but under-privileged portal user can read timesheet details they should not see. Because exploitation requires a valid portal login and yields only limited confidentiality of project timesheet metadata, this is a patch-on-schedule item rather than an emergency, though organizations exposing the customer/project portal to many external users should rank it higher. EPSS, KEV, POC and SSVC inputs are all absent - treat that absence as missing data, not as evidence of low exploitability. |
| Exploit ScenarioDerived | A customer or project portal user who has been granted read access to a Project - but is not a member permitted to see its timesheets, or for whom hide_timesheets is set - calls the get_timesheet_html endpoint for that project. Because the method only validates Project read access and ignores membership and the hide_timesheets flag, the server returns timesheet names, statuses, time-log dates and last-modifier identities. No public exploit was identified at time of analysis; exploitation is low-complexity (AC:L) but requires an authenticated portal session (PR:L). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Authenticated portal users in ERPNext 15.55.0 through 16.50.0 can read timesheet metadata - such as timesheet names, status, time-log dates and last-modified information - for projects they should not have visibility into, because the get_timesheet_html routine enforced only Project read access and ignored both the hide_timesheets flag and project membership. An attacker needs a valid customer/project portal login with read access to the target Project; no anonymous access is possible, and the leak is limited to metadata rather than full timesheet contents (CVSS 4.0 base 5.3, our assessment CVSS 3.1 5.3, C:L only with no integrity or availability impact). Exploitation status is low-urgency: no public exploit code identified at time of analysis and the issue is not listed in CISA KEV; an upstream fix exists in the ERPNext repository via commit eb217deef7bd407d34254aee3b3e175e4d357c90 (PR #60280), though a tagged patched release has not been independently confirmed.
RemediationAI
Apply the upstream authorization fix in erpnext/templates/pages/projects.py - commit eb217deef7bd407d34254aee3b3e175e4d357c90 (pull request https://github.com/frappe/erpnext/pull/60280), which makes get_timesheets reject callers when validate_and_get_project_user returns nothing or when the returned project_user has hide_timesheets set - or upgrade ERPNext to a release newer than 16.50.0 that contains this commit; note that upstream fix is available via PR/commit but a specific tagged patched version was not independently confirmed from the provided data, so verify the commit hash is present in your deployed build before assuming you are fixed. Until patching is possible, the most effective compensating control is to reduce portal exposure: remove or deactivate Customer/portal Users on Projects whose timesheets are sensitive (the defect is driven by project read access plus portal membership, so trimming the Customer portal_users association removes the prerequisite), which has the operational cost of disabling legitimate customer self-service visibility; alternatively disable the public project portal entirely or block unauthenticated/low-trust access to the portal projects page route at the reverse proxy for external networks, accepting that internal portal users lose the Timesheets panel. Because the authorization check ignores hide_timesheets, toggling that flag is not a reliable mitigation on its own, and since no anonymous or write path is involved, generic WAF or rate-limiting rules offer little protection - the decision must be made at the permission layer. Monitor ERPNext/Frappe logs for frappe.PermissionError entries or unusual requests to the project portal timesheet endpoint as a detection backstop while remediation is in progress.
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
ERPNext is a Python/JavaScript ERP built on the Frappe framework, where portal pages are rendered by server-side Python modules and access control is expected to be enforced by explicit permission checks rather than by desk-session roles. The vulnerable code lives in erpnext/templates/pages/projects.py, in the project portal page handler that serves the Timesheets section; the affected routine (get_timesheet_html, backed by get_timesheets) called validate_and_get_project_user(project=project) and treated a truthy return as sufficient authorization to render timesheet data. That check verified only that the caller had read access to the parent Project, so it never evaluated the project's hide_timesheets setting and never confirmed that the caller was actually listed in the project's portal_users/member association. The result is a textbook CWE-863 (Incorrect Authorization) broken-access-control defect: the authorization decision validated the wrong object property (project read) instead of the specific resource being disclosed (project timesheets), a classic object-attribute/object-property level authorization gap. The upstream patch changes the flow to capture the project_user object and throw frappe.PermissionError('You are not permitted to view the timesheets of this project.') when project_user is falsy or project_user.hide_timesheets is set, and adds a regression test confirming that a Customer portal user not in the project's users cannot call get_timesheet_html. Because the endpoint is a normal portal HTTP route reachable over the network with a low-privilege authenticated session (CVSS 4.0 vector PR:L, AV:N), the exposure is a straightforward server-side data-disclosure path rather than a code-execution or state-changing issue.
Know when the next one hits your stack
- 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable endpoint abusable by any authenticated portal user (PR:L, AC:L, UI:N); impact is limited metadata disclosure so C:L with no integrity or availability effect.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
ERPNext 15.55.0 through 16.50.0 contains an incorrect authorization vulnerability in the get_timesheet_html method that lets authenticated portal users view project Timesheets. The method only checks Project read access, ignoring hide_timesheets and project membership, so attackers can retrieve timesheet names, status, time-log dates and last modifiers.
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
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-97874
GHSA-rpph-rh47-8p8m
NVD
CVE.org
EPSS
Exploit-DB