Skip to main content

ERPNext EUVDEUVD-2026-103170

| CVE-2026-108374 HIGH
Missing Authorization (CWE-862)
2026-10-16 GitHub_M
7.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged ERPNext user
  2. Exploit
    Call unguarded whitelisted state-changing method
  3. Execution
    Bypass missing write/submit/cancel check
  4. Impact
    Modify documents beyond permitted role

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 account with any low-privilege role (PR:L) on the target instance; no admin rights, no user interaction, and no non-default configuration are needed because the affected whitelisted methods (e.g. Ledger Merge start_merge, Process Period Closing Voucher start/pause/cancel, Repost Payment Ledger, Delivery Note make_sales_return, payment order, and bulk transaction processing) are standard endpoints. Exploitation is LIMITED by the need for an existing account - fully unauthenticated attackers cannot trigger it - so risk concentrates in multi-user or externally-accessible ERPNext deployments where untrusted or low-trust users can log in; affected only on versions prior to 15.121.0 and 16.34.0.

Impact

This is a genuine authorization flaw (CWE-862, Missing Authorization) in ERPNext whose exploitability profile is confirmed by the vendor via the GitHub Security Advisory (GHSA-5wpj-6rvp-9ff7) and three fix commits. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N, 7.7) is internally consistent with the description and the source-code evidence: whitelisted state-changing methods (start_merge, PCV processing, payment-ledger repost, sales-return creation, bulk transactions) lacked check_permission/has_permission/only_for guards, so a low-privileged authenticated user (PR:L) can invoke them remotely (AV:N) with no user interaction (UI:N) to modify data outside their role - a scope change (S:C) with high integrity impact and no confidentiality or availability impact (C:N/I:H/A:N). No EPSS score, KEV listing, or SSVC decision data was supplied, and no public exploit is referenced, so there is no evidence of active exploitation or automatable mass-scanning; this is a high-CVSS integrity/access-control bug whose real-world risk is bounded by the requirement for an existing authenticated account on the target instance. Priority is moderate-to-high for internet-exposed multi-tenant ERPNext deployments where low-trust users hold accounts, but lower for single-tenant internal installations.

Exploit ScenarioDerived

A low-privileged authenticated ERPNext user (for example a basic sales or project user) directly calls one of the affected whitelisted server methods - such as the Delivery Note sales-return creation, payment-order, or period-closing-voucher endpoints - over the normal web API. Because the pre-patch code skipped write/submit/cancel permission checks, the request succeeds and mutates financial or stock documents the user has no role to touch. No public exploit code is referenced, but the vendor fix commits reveal the exact unguarded methods, making weaponization straightforward for an authenticated actor.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

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

Alert me

AnalysisAIv1 – Oct 16, 2026

Missing authorization checks in ERPNext versions prior to 15.121.0 and 16.34.0 let any authenticated user with a low-privilege role invoke state-changing whitelisted endpoints - such as Ledger Merge, Process Period Closing Voucher start/pause/cancel, Repost Payment Ledger, Delivery Note sales return, payment order, and bulk transaction processing - without the write, submit, cancel, or role permissions those operations should require, allowing tampering with financial and transactional records beyond the user's assigned role. The flaw is rated CVSS 7.7 (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N), so exploitation requires a valid low-privileged account but no admin rights, no user interaction, and no non-default configuration; integrity impact is high while confidentiality is unaffected. No public exploit code has been identified at time of analysis and the issue is not in CISA KEV, but the attack surface is standard functionality present in every affected deployment, so multi-user or internet-exposed instances should treat this as high priority. Vendor-released patch: 15.121.0 and 16.34.0.

RemediationAI

Vendor-released patch: upgrade ERPNext to 15.121.0 (v15 branch) or 16.34.0 (v16 branch); these releases contain the authorization fixes, and the underlying changes are visible in commits 547d82da563380a0644919173e00d0205f986d89, 86e94803629ea5668c2fc2d18afb5ca59fe2cf03, and a20fc4f9317ecc7d262625aea680c9a0cda98cef, with details at https://github.com/frappe/erpnext/security/advisories/GHSA-5wpj-6rvp-9ff7. Where an immediate upgrade is not possible, compensating controls carry trade-offs: restrict the instance to trusted internal networks or place it behind authentication-aware reverse-proxy rules so that only vetted staff can reach whitelisted method endpoints, accepting reduced accessibility for remote or partner users; review and tighten Role Permission Manager assignments so that no role has write/submit/cancel rights on Ledger Merge, Payment Order, Process Period Closing Voucher, Repost Payment Ledger, Project, and Delivery Note that it does not genuinely need, understanding this only narrows the blast radius because the missing checks are server-side and role-reduction does not itself enforce them; disable or restrict self-service user signup and audit low-privilege accounts to shrink the population that can trigger the endpoints, at the cost of onboarding friction; and enable DocType/audit logging on the affected modules to detect unauthorized state changes, which adds storage and review overhead. Because exploitation requires only an authenticated low-privilege account, monitor for anomalous submissions, cancellations, and bulk transaction runs from non-privileged users until the patch is applied.

Affected VersionsENISA

ERPNext < 15.121.0
ERPNext 16.0.0, < 16.34.0

Affected Packages

euvd erpnext fix: 15.121.0, 16.34.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

ERPNext is the flagship application built on the Frappe Framework, a Python/MariaDB stack that exposes server-side methods to clients through a 'whitelisted' RPC mechanism and enforces row-level authorization through its DocType permission model (frappe.has_permission / doc.check_permission with ptype values such as read, write, submit, cancel). CWE-862 (Missing Authorization) describes the root cause precisely: a set of whitelisted status-modification endpoints - erpnext.accounts.doctype.ledger_merge, payment_order, process_period_closing_voucher, repost_payment_ledger, erpnext.projects.doctype.project, erpnext.stock.doctype.delivery_note.make_sales_return, and erpnext.utilities.bulk_transaction.transaction_processing - performed their state changes without first calling the framework's permission primitives. The upstream fix commits (547d82da, 86e94803, a20fc4f9) add explicit doc.check_permission('write'/'submit'), frappe.has_permission(..., ptype='write'/'cancel', throw=True) and frappe.only_for('System Manager') guards, and switch Delivery Note handling to frappe.get_lazy_doc, confirming that the missing checks were the sole defect. The CVSS scope change (S:C) reflects that a low-privileged user can move outside the security scope originally granted by their role and mutate accounting, project, and stock documents they are not entitled to touch; CPE cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* designates all pre-fix ERPNext releases.

Know when Erpnext 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_M) PRIMARY 7.7 HIGH
AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N
vuln.today AI 7.7 HIGH

Remote whitelisted-method call needs only a low-privilege authenticated account (PR:L, AV:N, AC:L, UI:N); bypassing role checks to alter other users' documents is a scope change (S:C) with high integrity and no confidentiality/availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 16, 2026 - 22:03 EUVD
CVE Published
Oct 16, 2026 - 20:38 cve.org
HIGH 7.7

DescriptionCVE.org

ERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.121.0 and 16.34.0, certain endpoints for status modification fail to enforce proper authorization checks. A low-privileged authenticated user can invoke state-changing whitelisted methods without required write, submit, cancel, document, or role checks. This allows the user to modify data beyond the user's permitted role. This issue is fixed in versions 15.121.0 and 16.34.0.

Technical POC Analysis

Evidence note: the only supplied evidence is advisory GHSA-5wpj-6rvp-9ff7.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

ERPNext, the open-source platform many organizations rely on for finance, inventory, and order processing, contains an authorization gap that lets any user with a routine low-privilege account alter financial ledgers, close accounting periods, and modify sales and payment records well beyond their assigned role. Because the vulnerable features are standard, enabled by default, and reachable by every authenticated user, the exposure grows with the size of the workforce and third-party user base rather than being confined to administrators. The consequences are integrity-driven: silent tampering with transactional and financial records can corrupt reporting, weaken audit and compliance attestation, and erode customer and auditor trust, all without any data being exfiltrated.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; the advisory description points to fixed versions 15.121.0 and 16.34.0 as the remediation target. Until those releases are deployed, interim mitigations include stripping unnecessary write, submit, and cancel permissions from low-privilege roles, restricting or disabling the affected whitelisted endpoints (Ledger Merge, Period Closing Voucher start/pause/cancel, Repost Payment Ledger, Delivery Note sales return, payment order, bulk transaction processing) via application configuration, custom role restrictions, or an upstream reverse proxy/WAF rule set, reducing the number of active low-privilege and third-party accounts, enforcing network-level restrictions so only trusted corporate ranges can reach the ERP interface, increasing logging and alerting on anomalous invocations of these endpoints, and performing manual reconciliation of ledger and transactional records for the period of exposure.

Threat Intelligence Overview

Prevalence
Medium
popular open-source ERP, common in SMBs but not ubiquitous infrastructure
Social Media
3
Sightings
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
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.

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-66438 HIGH POC
8.8 Dec 15

Authenticated attackers with permission to create or modify Print Format documents in Frappe ERPNext through 15.89.0 can

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-2025-66434 HIGH POC
8.8 Dec 15

Authenticated server-side template injection in Frappe ERPNext through 15.89.0 allows users with privileges to configure

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-2023-54345 HIGH POC
8.7 May 05

Frappe Framework ERPNext 13.4.0 contains a sandbox escape vulnerability in RestrictedPython that allows authenticated us

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy