{"id":"GHSA-pcr3-v5vr-qppf","kind":"vulnerability","aliases":["GHSA-pcr3-v5vr-qppf"],"related":[],"title":"Per-User Credential Theft via Error-Workflow Execution Context Inheritance","description":"## Impact\n\nWhen a workflow fails, n8n runs the workflow named in its error-workflow setting and hands it the failed run's execution context, including the carrier that binds the run to the user who started it. A project editor could point a colleague's workflow at an error workflow they own, inherit the colleague's identity in their own execution, and resolve that user's per-user credential secrets. The error workflow now receives only non-identity fields.\n\n## Patches\n\nThe issue has been fixed in n8n versions 2.42.2 and 2.41.5. Users should upgrade to one of these versions or later to remediate the vulnerability.\n\n## Workarounds\n\nIf upgrading is not immediately possible, administrators should consider the following temporary mitigations:\n- Restrict n8n instance access to fully trusted users only.\n- Audit team project memberships and remove editor access from any users who are not fully trusted.\n- Review all active workflows and audit the `settings.errorWorkflow` field for unexpected values.\n- Disable the dynamic credentials feature if it is not required.\n\nThese workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.","summary":"n8n runs the error workflow named in a failed workflow's settings and passes it the failed run's execution context, including the identity of the user who started it. A project editor can point a colleague's workflow at an error workflow they own and read that user's per-user credential secrets.","severity":"medium","cvss":5.1,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"n8n","fixed":[">= 2.42.2"],"affected":"< 2.42.2","ecosystem":"npm"},{"name":"n8n","fixed":[">= 2.41.5"],"affected":"< 2.41.5","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["ai-tooling","n8n","per-user-credentials","self-hosted","team-projects","workflow-automation"],"not_affected_if":["dynamic-credentials-disabled","no-team-projects","single-user-instance"],"how_to_check":"- Confirm the n8n version with `n8n --version` or the npm package version in your install.\n- Audit workflows for the `settings.errorWorkflow` field and look for unexpected values.\n- Review team project memberships for editor access held by users who are not fully trusted.","fix":"- n8n `2.42.2` (fixed line 2.42.x)\n- n8n `2.41.5` (fixed line 2.41.x)","status":"open","published_at":"2026-10-14T09:43:37+00:00","first_seen_at":"2026-11-09T22:53:26+00:00","triaged_at":"2026-11-09T22:56:58+00:00","updated_at":"2026-11-09T22:56:58+00:00","category":"ai-tooling","confidence":0.8,"triage":{"at":"2026-11-09T22:56:58Z","model":"claude-haiku-5-5","output":{"fix":"- n8n `2.42.2` (fixed line 2.42.x)\n- n8n `2.41.5` (fixed line 2.41.x)","reach":"network","title":"n8n: error workflows inherit a colleague's identity and per-user credentials","impact":"medium","summary":"n8n runs the error workflow named in a failed workflow's settings and passes it the failed run's execution context, including the identity of the user who started it. A project editor can point a colleague's workflow at an error workflow they own and read that user's per-user credential secrets.","audience":"businesses","category":"ai-tooling","nicknames":[],"who_cares":["n8n","self-hosted","team-projects","per-user-credentials","workflow-automation"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"colleague's per-user credential secrets readable by a project editor","analyst_note":"","how_to_check":"- Confirm the n8n version with `n8n --version` or the npm package version in your install.\n- Audit workflows for the `settings.errorWorkflow` field and look for unexpected values.\n- Review team project memberships for editor access held by users who are not fully trusted.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["single-user-instance","no-team-projects","dynamic-credentials-disabled"],"who_is_affected":"Only self-hosted or managed n8n instances that use team projects with editor roles and per-user credentials, including the dynamic credentials feature, are exposed. An attacker needs an editor account in a project, and the workflow setting `settings.errorWorkflow` must be used to chain runs. Instances with only fully trusted users, or without team projects and per-user credentials, carry much less risk.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000805,"input_tokens":4913,"output_tokens":627,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'2.41.5':190C '2.42.2':188C 'access':222C,235C 'activ':246C 'administr':212C 'ai':26B 'ai-tool':25B 'audit':228C,249C 'autom':41B 'bind':126C 'carrier':124C 'colleagu':78B,141C,152C 'consid':214C 'context':11A,62B,121C 'could':138C 'credenti':4A,32B,95B,167C,259C 'disabl':256C 'dynam':258C 'editor':74B,137C,234C 'error':8A,45B,83B,110C,146C,170C 'error-workflow':7A,109C 'execut':10A,61B,120C,158C 'fail':50B,58B,101C,117C 'featur':260C 'field':178C,252C 'fix':184C 'follow':216C 'fulli':224C,242C,270C 'ghsa':14A,19A 'ghsa-pcr3-v5vr-qppf':13A,18A 'hand':114C 'host':35B 'ident':65B,154C,177C 'immedi':210C 'impact':97C 'includ':63B,122C 'inherit':12A,150C 'instanc':221C 'issu':181C 'later':200C 'measur':284C 'membership':231C 'mitig':218C,283C 'n8n':23A,24A,28B,42B,102C,186C,220C 'name':47B,106C 'non':176C 'non-ident':175C 'one':195C 'pass':55B 'patch':179C 'pcr3':15A,20A 'per':2A,30B,93B,165C 'per-us':1A,92B,164C 'per-user-credenti':29B 'point':76B,139C 'possibl':211C 'project':38B,73B,136C,230C 'qppf':17A,22A 'read':88B 'receiv':173C 'remedi':202C,271C 'remov':233C 'requir':265C 'resolv':160C 'restrict':219C 'review':244C 'risk':273C 'run':43B,59B,103C,118C,128C 'secret':96B,168C 'self':34B 'self-host':33B 'set':53B,112C 'settings.errorworkflow':251C 'short':281C 'short-term':280C 'start':70B,133C 'team':37B,229C 'team-project':36B 'temporari':217C 'term':282C 'theft':5A 'tool':27B 'trust':225C,243C 'unexpect':254C 'upgrad':193C,207C 'use':278C 'user':3A,31B,68B,90B,94B,131C,162C,166C,191C,226C,238C 'v5vr':16A,21A 'valu':255C 'version':187C,198C 'via':6A 'vulner':204C 'workaround':205C,267C 'workflow':9A,40B,46B,51B,80B,84B,100C,105C,111C,143C,147C,171C,247C 'workflow-autom':39B","nicknames":[],"mitigations":[],"who_affected":"Only self-hosted or managed n8n instances that use team projects with editor roles and per-user credentials, including the dynamic credentials feature, are exposed. An attacker needs an editor account in a project, and the workflow setting `settings.errorWorkflow` must be used to chain runs. Instances with only fully trusted users, or without team projects and per-user credentials, carry much less risk.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["n8n"],"ptokens":["n8n"],"labels":["aitooling","medium","n8n","npm","perusercredentials","selfhosted","teamprojects","workflowautomation"],"campaign_type":null,"search_a":"'context':11A 'credenti':4A 'error':8A 'error-workflow':7A 'execut':10A 'ghsa':14A,19A 'ghsa-pcr3-v5vr-qppf':13A,18A 'inherit':12A 'n8n':23A,24A 'pcr3':15A,20A 'per':2A 'per-us':1A 'qppf':17A,22A 'theft':5A 'user':3A 'v5vr':16A,21A 'via':6A 'workflow':9A","search_b":"'ai':26B 'ai-tool':25B 'autom':41B 'colleagu':78B 'context':62B 'credenti':32B,95B 'editor':74B 'error':45B,83B 'execut':61B 'fail':50B,58B 'host':35B 'ident':65B 'includ':63B 'n8n':28B,42B 'name':47B 'pass':55B 'per':30B,93B 'per-us':92B 'per-user-credenti':29B 'point':76B 'project':38B,73B 'read':88B 'run':43B,59B 'secret':96B 'self':34B 'self-host':33B 'set':53B 'start':70B 'team':37B 'team-project':36B 'tool':27B 'user':31B,68B,90B,94B 'workflow':40B,46B,51B,80B,84B 'workflow-autom':39B","search_c":"'2.41.5':190C '2.42.2':188C 'access':222C,235C 'activ':246C 'administr':212C 'audit':228C,249C 'bind':126C 'carrier':124C 'colleagu':141C,152C 'consid':214C 'context':121C 'could':138C 'credenti':167C,259C 'disabl':256C 'dynam':258C 'editor':137C,234C 'error':110C,146C,170C 'error-workflow':109C 'execut':120C,158C 'fail':101C,117C 'featur':260C 'field':178C,252C 'fix':184C 'follow':216C 'fulli':224C,242C,270C 'hand':114C 'ident':154C,177C 'immedi':210C 'impact':97C 'includ':122C 'inherit':150C 'instanc':221C 'issu':181C 'later':200C 'measur':284C 'membership':231C 'mitig':218C,283C 'n8n':102C,186C,220C 'name':106C 'non':176C 'non-ident':175C 'one':195C 'patch':179C 'per':165C 'per-us':164C 'point':139C 'possibl':211C 'project':136C,230C 'receiv':173C 'remedi':202C,271C 'remov':233C 'requir':265C 'resolv':160C 'restrict':219C 'review':244C 'risk':273C 'run':103C,118C,128C 'secret':168C 'set':112C 'settings.errorworkflow':251C 'short':281C 'short-term':280C 'start':133C 'team':229C 'temporari':217C 'term':282C 'trust':225C,243C 'unexpect':254C 'upgrad':193C,207C 'use':278C 'user':131C,162C,166C,191C,226C,238C 'valu':255C 'version':187C,198C 'vulner':204C 'workaround':205C,267C 'workflow':100C,105C,111C,143C,147C,171C,247C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-14T09:43:37+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"ghsa-repo","external_id":"GHSA-pcr3-v5vr-qppf","url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-pcr3-v5vr-qppf","severity":"medium","published_at":"2026-10-14T09:43:37+00:00","modified_at":"2026-10-14T09:43:37+00:00","first_seen_at":"2026-11-09T22:53:26+00:00","fetched_at":"2026-11-09T22:53:26+00:00","note":null}],"documents":[{"id":48844,"url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-pcr3-v5vr-qppf","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-14T09:43:37+00:00","relation":"advisory","confidence":null,"note":"Maintainer's advisory: github.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"}