{"id":"CVE-2026-125397","kind":"vulnerability","aliases":["CVE-2026-125397"],"related":[],"title":"NocoBase AI plugin lets logged-in users run unassigned AI employees","description":"NocoBase plugin-ai 2.1.0 through 2.2.41 contains an authorization bypass vulnerability in getAccessibleAIEmployee() that lets authenticated users access unassigned AI employees by overriding the role-derived filter with a supplied username. Attackers can use the dispatch-sub-agent-task tool to run ungranted AI employees with their tools and permissions, and get-ai-employee to read their prompts and tool configuration.","summary":"The NocoBase plugin-ai versions 2.1.0 through 2.2.41 fail to check role assignments when listing AI employees, so an authenticated user can supply a username to override the filter. An attacker can then run AI employees they were never granted, with their tools and permissions, and read their prompts and tool configuration.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ai-tooling","nocobase","plugin-ai","self-hosted"],"not_affected_if":["plugin-ai-not-installed","version-outside-range"],"how_to_check":"- Check the installed `@nocobase/plugin-ai` version in the NocoBase project's package.json or lockfile; versions `2.1.0` through `2.2.41` are affected.\n- Review which AI employees are assigned to which roles, and whether any employee grants tools with sensitive permissions.","fix":"- `@nocobase/plugin-ai`: move to a version later than `2.2.41` (the sources do not name the exact fixed release; see the linked patch).","status":"open","published_at":"2026-11-10T00:17:13+00:00","first_seen_at":"2026-11-10T00:28:44+00:00","triaged_at":"2026-11-10T00:30:09+00:00","updated_at":"2026-11-10T00:30:09+00:00","category":"ai-tooling","confidence":0.6,"triage":{"at":"2026-11-10T00:30:09Z","model":"claude-haiku-5-5","output":{"fix":"- `@nocobase/plugin-ai`: move to a version later than `2.2.41` (the sources do not name the exact fixed release; see the linked patch).","reach":"network","title":"NocoBase AI plugin lets logged-in users run unassigned AI employees","impact":"medium","summary":"The NocoBase plugin-ai versions 2.1.0 through 2.2.41 fail to check role assignments when listing AI employees, so an authenticated user can supply a username to override the filter. An attacker can then run AI employees they were never granted, with their tools and permissions, and read their prompts and tool configuration.","audience":"businesses","category":"ai-tooling","nicknames":[],"who_cares":["nocobase","plugin-ai","self-hosted"],"confidence":0.6,"fix_status":"available","needs_auth":"yes","worst_case":"authenticated users run and read unassigned AI employees' tools","analyst_note":"Confirm the first fixed version of @nocobase/plugin-ai from the linked patch and check whether the NocoBase default install enables plugin-ai.","how_to_check":"- Check the installed `@nocobase/plugin-ai` version in the NocoBase project's package.json or lockfile; versions `2.1.0` through `2.2.41` are affected.\n- Review which AI employees are assigned to which roles, and whether any employee grants tools with sensitive permissions.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["plugin-ai-not-installed","version-outside-range"],"who_is_affected":"Self-hosted or managed NocoBase deployments running plugin-ai from 2.1.0 through 2.2.41 where authenticated users have accounts. Deployments without the AI plugin, or on versions outside that range, are not affected by this flaw.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000798,"input_tokens":4654,"output_tokens":666,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-125397':15A,18A '-2026':14A,17A '2.1.0':35B,86C '2.2.41':37B,88C 'access':100C 'agent':122C 'ai':2A,11A,20B,25B,33B,45B,64B,85C,102C,128C,138C 'ai-tool':19B 'assign':42B 'attack':60B,115C 'authent':49B,98C 'author':91C 'bypass':92C 'check':40B 'configur':81B,146C 'contain':89C 'cve':13A,16A 'deriv':109C 'dispatch':120C 'dispatch-sub-agent-task':119C 'employe':12A,46B,65B,103C,129C,139C 'fail':38B 'filter':58B,110C 'get':137C 'get-ai-employe':136C 'getaccessibleaiemploye':95C 'grant':69B 'host':28B 'let':4A,97C 'list':44B 'log':6A 'logged-in':5A 'never':68B 'nocobas':1A,22B,30B,82C 'overrid':56B,105C 'permiss':74B,134C 'plugin':3A,24B,32B,84C 'plugin-ai':23B,31B,83C 'prompt':78B,143C 'read':76B,141C 'role':41B,108C 'role-deriv':107C 'run':9A,63B,126C 'self':27B 'self-host':26B 'sub':121C 'suppli':52B,113C 'task':123C 'tool':21B,72B,80B,124C,132C,145C 'unassign':10A,101C 'ungrant':127C 'use':117C 'user':8A,50B,99C 'usernam':54B,114C 'version':34B 'vulner':93C","nicknames":[],"mitigations":[],"who_affected":"Self-hosted or managed NocoBase deployments running plugin-ai from 2.1.0 through 2.2.41 where authenticated users have accounts. Deployments without the AI plugin, or on versions outside that range, are not affected by this flaw.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["aitooling","high","nocobase","pluginai","selfhosted"],"campaign_type":null,"search_a":"'-125397':15A,18A '-2026':14A,17A 'ai':2A,11A 'cve':13A,16A 'employe':12A 'let':4A 'log':6A 'logged-in':5A 'nocobas':1A 'plugin':3A 'run':9A 'unassign':10A 'user':8A","search_b":"'2.1.0':35B '2.2.41':37B 'ai':20B,25B,33B,45B,64B 'ai-tool':19B 'assign':42B 'attack':60B 'authent':49B 'check':40B 'configur':81B 'employe':46B,65B 'fail':38B 'filter':58B 'grant':69B 'host':28B 'list':44B 'never':68B 'nocobas':22B,30B 'overrid':56B 'permiss':74B 'plugin':24B,32B 'plugin-ai':23B,31B 'prompt':78B 'read':76B 'role':41B 'run':63B 'self':27B 'self-host':26B 'suppli':52B 'tool':21B,72B,80B 'user':50B 'usernam':54B 'version':34B","search_c":"'2.1.0':86C '2.2.41':88C 'access':100C 'agent':122C 'ai':85C,102C,128C,138C 'attack':115C 'authent':98C 'author':91C 'bypass':92C 'configur':146C 'contain':89C 'deriv':109C 'dispatch':120C 'dispatch-sub-agent-task':119C 'employe':103C,129C,139C 'filter':110C 'get':137C 'get-ai-employe':136C 'getaccessibleaiemploye':95C 'let':97C 'nocobas':82C 'overrid':105C 'permiss':134C 'plugin':84C 'plugin-ai':83C 'prompt':143C 'read':141C 'role':108C 'role-deriv':107C 'run':126C 'sub':121C 'suppli':113C 'task':123C 'tool':124C,132C,145C 'unassign':101C 'ungrant':127C 'use':117C 'user':99C 'usernam':114C 'vulner':93C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-10T00:17:13+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/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-125397","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-125397","severity":null,"published_at":"2026-11-10T00:17:13+00:00","modified_at":"2026-11-10T00:17:14+00:00","first_seen_at":"2026-11-10T00:28:44+00:00","fetched_at":"2026-11-10T00:28:44+00:00","note":null}],"documents":[{"id":111593,"url":"https://github.com/nocobase/nocobase/commit/ae5a05954e20608de510c33847089269cb37411a","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":111594,"url":"https://www.vulncheck.com/advisories/nocobase-plugin-ai-2.1.0-through-2.2.41-authorization-bypass-via-sub-agent-username-override","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"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}