Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliveryCall whitelisted timesheet RPC endpoint
-
ExploitEndpoint skips doctype permission check
-
ExecutionEnumerate timesheet/project records
-
ImpactExfiltrate billing amounts and descriptions
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 ERPNext session with any low-privilege role (PR:L) - the whitelisted endpoints get_projectwise_timesheet_data, get_timesheet_detail_rate, and get_timesheet are callable by authenticated users and, before 15.121.0 / 16.34.0, ran raw SQL that ignored Timesheet/Project doctype permissions. No user interaction, no special configuration, and no admin rights are needed; exploitation works against default configurations. Limiting factors: attacker must have an account on the instance (not remote-unauthenticated), only billable/submitted timesheet detail data is exposed, and impact is limited to reading data (no modification). Affected: ERPNext before 15.121.0 and 16.x before 16.34.0. |
| Impact | This is a genuine but bounded authorization flaw (CWE-862). The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N, 7.1) is internally consistent with the description: any authenticated ERPNext user can call the whitelisted timesheet endpoints and read billable time logs belonging to other users/projects because the pre-patch code ran raw |
| Exploit ScenarioDerived | A low-privileged authenticated ERPNext user (e.g., a limited employee or portal account) invokes the whitelisted RPC endpoints get_projectwise_timesheet_data, get_timesheet_detail_rate, or get_timesheet, which failed to apply doctype permissions. By iterating parameters they enumerate and retrieve other teams' billable time logs - project names, billing amounts, and work descriptions - that their role should not see. No public POC is provided, but the exploit is trivial given a valid session and knowledge of the endpoint names, which are visible in the patched source. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 20, 2026
Information disclosure in Frappe ERPNext before 15.121.0 and 16.x before 16.34.0 lets any authenticated user with a low-privilege account read billable timesheet records they are not authorized to see, via the whitelisted endpoints get_projectwise_timesheet_data, get_timesheet_detail_rate, and get_timesheet. The affected code paths ran raw SQL that skipped Timesheet and Project doctype permission checks, exposing project names, billing amounts, currencies, activity types, and free-text work descriptions. Exploitation requires a valid ERPNext session (PR:L) but no admin rights, user interaction, or special configuration; there is no public exploit identified at time of analysis, and the assessed impact is confidentiality-only (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) with no data modification or denial of service.
RemediationAI
Vendor-released patch: upgrade to ERPNext 15.121.0 or later on the v15 branch, or 16.34.0 or later on the v16 branch, which applies the Frappe query-builder rewrite that filters Timesheet and Project results through frappe.get_list permission scoping (see GHSA-9vph-hqmm-g7hq and PR 58576). If immediate upgrade is not possible, compensating controls are: block or disable the three exposed endpoints (get_projectwise_timesheet_data, get_timesheet_detail_rate, get_timesheet) at the reverse proxy or via a before_request/site-level hook returning 403, accepting that the project billing, timesheet search, and rate lookup features in the ERPNext UI will break until the patch is applied; temporarily revoke or audit low-privilege ERPNext accounts and roles that do not legitimately need timesheet/billing visibility, since the flaw requires only an authenticated session; and enable Frappe access/API logs to detect calls to those /api/method/ paths from accounts without Timesheet read permission. Rotating credentials is not a meaningful mitigation because the exposure is a persistent authorization gap, not a credential leak, and no compensating control fully restores the intended permission model - the upgrade is the only complete fix.
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 Frappe-framework ERP application in which server-side Python functions are exposed as HTTP-callable endpoints by the @frappe.whitelist() decorator through the /api/method/ route, but the framework only enforces DocType permissions automatically when methods go through permission-aware APIs such as frappe.get_list, frappe.get_all with permitted filters, or frappe.has_permission. The vulnerable functions in erpnext/projects/doctype/timesheet/timesheet.py instead built raw SQL strings against tabTimesheet Detail and tabTimesheet and executed them with frappe.db.sql, so the user's role-based read restrictions on Timesheet and Project were never consulted. This is CWE-862 (Missing Authorization): the endpoints authenticate the caller but perform no authorization check against the underlying DocTypes. The upstream fixes in commits c656497aac76af82eea028e3e8cb8d5380385f0f and d5df40986d72a55d414ddaf4d382883f9df31e41 (PR 58576) replace the raw SQL with the Frappe query builder and constrain results using frappe.get_list("Timesheet", pluck="name") and frappe.get_list("Project", pluck="name") allowlists, returning empty results or 0.0 when the caller has no permitted timesheets, and limit the rate lookup to a single permitted timelog.
Know when Python 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Remote, low-complexity, needs any authenticated account (PR:L); confidentiality-only leak of sensitive billing/project data (C:H), no integrity or availability impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
Frappe ERPNext versions before 15.121.0 and 16.x before 16.34.0 contain an information disclosure vulnerability in whitelisted timesheet endpoints that fail to enforce doctype permissions. Authenticated attackers can call get_projectwise_timesheet_data, get_timesheet_detail_rate, and get_timesheet endpoints to enumerate and retrieve billable time logs including project names, billing amounts, and work descriptions without proper authorization checks.
Technical POC Analysis
CWE-862 (Missing Authorization), per the GitHub advisory GHSA-9vph-hqmm-g7hq ("Certain endpoints failed to enforce proper authorization checks, allowing users to read data beyond their permitted role…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Frappe ERPNext instances running versions below 15.121.0, or 16.x below 16.34.0, allow any employee holding an ordinary non-privileged login to pull billing and timesheet records for projects they are not assigned to, exposing client project names, rates, currencies, activity types and free-text work notes. Because the flaw is reachable through normal application endpoints by any authenticated account, the exposure scales with the entire ERP user population rather than being confined to a small administrative group. Leadership should treat this as a confidentiality risk to client billing data that is compounded by the absence of a vendor patch at time of analysis and no public exploit identified at time of analysis.
Restrict get_projectwise_timesheet_data, get_timesheet_detail_rate and get_timesheet at the reverse proxy, WAF or API gateway to finance/billing roles only; remove Timesheet and Project read permissions from low-privilege and non-finance roles; reduce the number of accounts holding valid ERPNext sessions by disabling dormant users and enforcing MFA; enable access logging and anomaly alerting on the three endpoints; and apply the vendor fix at 15.121.0 or 16.34.0 as soon as it becomes obtainable.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
EUVD-2026-83735
GHSA-m9g7-gc6x-55x7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB