{"id":"CVE-2026-124314","kind":"vulnerability","aliases":["CVE-2026-124314"],"related":[],"title":"Frappe ERPNext: any logged-in user can read other users' tasks and calendar events","description":"Frappe ERPNext before 15.121.4 and 16.x before 16.36.0 contains a missing authorization vulnerability in erpnext.crm.utils.get_open_activities that exposes ToDo and Event records. Any authenticated user, including portal or no-role users, can supply arbitrary ref_doctype and ref_docname values to enumerate activities and private calendar event details.","summary":"ERPNext's get_open_activities function does not check permissions, so any authenticated user, including portal users, can pass arbitrary document references and list ToDo and Event records. An attacker gets private calendar event details and open activities belonging to other users.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["erpnext","frappe","package","self-hosted"],"not_affected_if":["no-authenticated-users","patched-version"],"how_to_check":"- Check the installed ERPNext version with `bench version` or in the app's package metadata; versions below `15.121.4` on the 15.x line or below `16.36.0` on the 16.x line are affected.\n- Review whether portal or low-privilege accounts exist on the site, since they can reach this endpoint.","fix":"- ERPNext 15.x: upgrade to `15.121.4` or later\n- ERPNext 16.x: upgrade to `16.36.0` or later","status":"open","published_at":"2026-11-07T15:17:15+00:00","first_seen_at":"2026-11-07T15:47:57+00:00","triaged_at":"2026-11-07T15:48:09+00:00","updated_at":"2026-11-07T15:48:09+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-07T15:48:09Z","model":"claude-haiku-5-5","output":{"fix":"- ERPNext 15.x: upgrade to `15.121.4` or later\n- ERPNext 16.x: upgrade to `16.36.0` or later","reach":"internet","title":"Frappe ERPNext: any logged-in user can read other users' tasks and calendar events","impact":"medium","summary":"ERPNext's get_open_activities function does not check permissions, so any authenticated user, including portal users, can pass arbitrary document references and list ToDo and Event records. An attacker gets private calendar event details and open activities belonging to other users.","audience":"businesses","category":"package","nicknames":[],"who_cares":["erpnext","frappe","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"authenticated users read other users' private calendar events and tasks","analyst_note":"","how_to_check":"- Check the installed ERPNext version with `bench version` or in the app's package metadata; versions below `15.121.4` on the 15.x line or below `16.36.0` on the 16.x line are affected.\n- Review whether portal or low-privilege accounts exist on the site, since they can reach this endpoint.","plain_action":"","needs_analyst":false,"not_affected_if":["patched-version","no-authenticated-users"],"who_is_affected":"Any ERPNext site where users can log in, including customer or supplier portal accounts, is exposed through the CRM activities endpoint. Sites with only trusted internal staff are still exposed to those staff reading each other's private events. Sites running the fixed versions or later are not affected.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000719,"input_tokens":4324,"output_tokens":573,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-124314':18A,21A '-2026':17A,20A '15.121.4':73C '16':75C '16.36.0':78C 'activ':32B,65B,87C,115C 'arbitrari':47B,106C 'attack':57B 'authent':40B,95C 'author':82C 'belong':66B 'calendar':14A,60B,118C 'check':36B 'contain':79C 'cve':16A,19A 'detail':62B,120C 'docnam':111C 'doctyp':108C 'document':48B 'enumer':114C 'erpnext':2A,22B,28B,71C 'erpnext.crm.utils.get':85C 'event':15A,54B,61B,92C,119C 'expos':89C 'frapp':1A,23B,70C 'function':33B 'get':30B,58B 'host':27B 'includ':42B,97C 'list':51B 'log':5A 'logged-in':4A 'miss':81C 'no-rol':100C 'open':31B,64B,86C 'packag':24B 'pass':46B 'permiss':37B 'portal':43B,98C 'privat':59B,117C 'read':9A 'record':55B,93C 'ref':107C,110C 'refer':49B 'role':102C 'self':26B 'self-host':25B 'suppli':105C 'task':12A 'todo':52B,90C 'user':7A,11A,41B,44B,69B,96C,103C 'valu':112C 'vulner':83C 'x':76C","nicknames":[],"mitigations":[],"who_affected":"Any ERPNext site where users can log in, including customer or supplier portal accounts, is exposed through the CRM activities endpoint. Sites with only trusted internal staff are still exposed to those staff reading each other's private events. Sites running the fixed versions or later are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["erpnext","frappe","high","package","selfhosted"],"campaign_type":null,"search_a":"'-124314':18A,21A '-2026':17A,20A 'calendar':14A 'cve':16A,19A 'erpnext':2A 'event':15A 'frapp':1A 'log':5A 'logged-in':4A 'read':9A 'task':12A 'user':7A,11A","search_b":"'activ':32B,65B 'arbitrari':47B 'attack':57B 'authent':40B 'belong':66B 'calendar':60B 'check':36B 'detail':62B 'document':48B 'erpnext':22B,28B 'event':54B,61B 'frapp':23B 'function':33B 'get':30B,58B 'host':27B 'includ':42B 'list':51B 'open':31B,64B 'packag':24B 'pass':46B 'permiss':37B 'portal':43B 'privat':59B 'record':55B 'refer':49B 'self':26B 'self-host':25B 'todo':52B 'user':41B,44B,69B","search_c":"'15.121.4':73C '16':75C '16.36.0':78C 'activ':87C,115C 'arbitrari':106C 'authent':95C 'author':82C 'calendar':118C 'contain':79C 'detail':120C 'docnam':111C 'doctyp':108C 'enumer':114C 'erpnext':71C 'erpnext.crm.utils.get':85C 'event':92C,119C 'expos':89C 'frapp':70C 'includ':97C 'miss':81C 'no-rol':100C 'open':86C 'portal':98C 'privat':117C 'record':93C 'ref':107C,110C 'role':102C 'suppli':105C 'todo':90C 'user':96C,103C 'valu':112C 'vulner':83C 'x':76C","first_public_at":"2026-11-06T03:42:34+00:00","kev":null,"cvss_vector":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-124314","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-124314","severity":null,"published_at":"2026-11-07T15:17:15+00:00","modified_at":"2026-11-07T15:17:15+00:00","first_seen_at":"2026-11-07T15:47:57+00:00","fetched_at":"2026-11-07T15:47:57+00:00","note":null}],"documents":[{"id":96368,"url":"https://github.com/frappe/erpnext/commit/48635ee6b56a08dc5663d283d8e29c4e30190ad3","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":96369,"url":"https://github.com/frappe/erpnext/commit/aea326869b4f7ba96629eaec7e5d2eff3957c364","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":96374,"url":"https://github.com/frappe/erpnext/security/advisories/GHSA-w264-5p9f-hfwm","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-11-06T03:42:34+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":96375,"url":"https://www.vulncheck.com/advisories/frappe-erpnext-before-15.121.4-and-16.36.0-missing-authorization-via-get-open-activities","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}