{"id":"CVE-2026-102943","kind":"vulnerability","aliases":["CVE-2026-102943"],"related":[],"title":"Dagu: MCP read tool leaks YAML files outside DAG directories","description":"Dagu is a workflow engine with a built-in Web user interface. Prior to version 2.11.0, its MCP  dagu_read  operation with target  dag_spec  invokes the DAG specification API directly, bypassing the HTTP middleware introduced for CVE-2026-33344. The underlying resolver does not restrict resolved paths to configured DAG directories. An authenticated attacker with a viewer-role API key can supply an absolute or traversing path to read  .yaml  or  .yml  files outside those directories that are accessible to the Dagu process. The affected operation does not provide write or execution capability. This issue is fixed in version 2.11.0.","summary":"Dagu is a workflow engine with a web interface and an MCP server. An attacker holding a viewer-role API key can use the MCP dagu_read operation with the dag_spec target to read .yaml or .yml files outside the configured DAG directories.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ai-tooling","dagu","mcp","self-hosted","workflow-engine"],"not_affected_if":["mcp-not-used","no-untrusted-api-keys","version-2.11.0-or-later"],"how_to_check":"- Check the installed Dagu version: `dagu version`\n- Check whether the MCP server is enabled and whether viewer-role API keys are issued to anyone outside the team","fix":"- Dagu: move to `2.11.0` or later","status":"open","published_at":"2026-11-05T23:16:49+00:00","first_seen_at":"2026-11-05T23:48:39+00:00","triaged_at":"2026-11-05T23:49:45+00:00","updated_at":"2026-11-05T23:49:45+00:00","category":"ai-tooling","confidence":0.7,"triage":{"at":"2026-11-05T23:49:45Z","model":"claude-haiku-5-5","output":{"fix":"- Dagu: move to `2.11.0` or later","reach":"network","title":"Dagu: MCP read tool leaks YAML files outside DAG directories","impact":"medium","summary":"Dagu is a workflow engine with a web interface and an MCP server. An attacker holding a viewer-role API key can use the MCP dagu_read operation with the dag_spec target to read .yaml or .yml files outside the configured DAG directories.","audience":"businesses","category":"ai-tooling","nicknames":[],"who_cares":["dagu","mcp","self-hosted","workflow-engine"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Arbitrary YAML files readable from the Dagu host, possibly secrets","analyst_note":"","how_to_check":"- Check the installed Dagu version: `dagu version`\n- Check whether the MCP server is enabled and whether viewer-role API keys are issued to anyone outside the team","plain_action":"","needs_analyst":false,"not_affected_if":["version-2.11.0-or-later","mcp-not-used","no-untrusted-api-keys"],"who_is_affected":"Teams running Dagu before 2.11.0 that expose its MCP server or hand out viewer-role API keys. The bypass sits in the MCP dagu_read path, which skipped the HTTP middleware added for CVE-2026-33344, so the HTTP path is not the issue. Teams without the MCP operation in use or without third-party API key holders can treat this as low urgency.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.00072,"input_tokens":4366,"output_tokens":566,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-102943':13A,16A '-2026':12A,15A,112C '-33344':113C '2.11.0':89C,175C 'absolut':139C 'access':154C 'affect':160C 'ai':18B 'ai-tool':17B 'api':48B,103C,134C 'attack':42B,128C 'authent':127C 'built':81C 'built-in':80C 'bypass':105C 'capabl':168C 'configur':70B,123C 'cve':11A,14A,111C 'dag':9A,59B,71B,97C,101C,124C 'dagu':1A,20B,28B,54B,73C,92C,157C 'direct':104C 'directori':10A,72B,125C,151C 'engin':27B,32B,77C 'execut':167C 'file':7A,67B,148C 'fix':172C 'hold':43B 'host':24B 'http':107C 'interfac':36B,85C 'introduc':109C 'invok':99C 'issu':170C 'key':49B,135C 'leak':5A 'mcp':2A,21B,39B,53B,91C 'middlewar':108C 'oper':56B,94C,161C 'outsid':8A,68B,149C 'path':121C,142C 'prior':86C 'process':158C 'provid':164C 'read':3A,55B,63B,93C,144C 'resolv':116C,120C 'restrict':119C 'role':47B,133C 'self':23B 'self-host':22B 'server':40B 'spec':60B,98C 'specif':102C 'suppli':137C 'target':61B,96C 'tool':4A,19B 'travers':141C 'under':115C 'use':51B 'user':84C 'version':88C,174C 'viewer':46B,132C 'viewer-rol':45B,131C 'web':35B,83C 'workflow':26B,31B,76C 'workflow-engin':25B 'write':165C 'yaml':6A,64B,145C 'yml':66B,147C","nicknames":[],"mitigations":[],"who_affected":"Teams running Dagu before 2.11.0 that expose its MCP server or hand out viewer-role API keys. The bypass sits in the MCP dagu_read path, which skipped the HTTP middleware added for CVE-2026-33344, so the HTTP path is not the issue. Teams without the MCP operation in use or without third-party API key holders can treat this as low urgency.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["aitooling","dagu","mcp","medium","selfhosted","workflowengine"],"campaign_type":null,"first_public_at":"2026-07-26T13:20:07+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-102943","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-102943","severity":null,"published_at":"2026-11-05T23:16:49+00:00","modified_at":"2026-11-05T23:16:49+00:00","first_seen_at":"2026-11-05T23:48:39+00:00","fetched_at":"2026-11-05T23:48:39+00:00","note":null}],"documents":[{"id":81474,"url":"https://github.com/dagucloud/dagu/commit/c15c5406bb7b9551f94ab276705f9fd1cebbf2d2","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":81475,"url":"https://github.com/dagucloud/dagu/releases/tag/v2.11.0","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":81476,"url":"https://github.com/dagucloud/dagu/security/advisories/GHSA-5m6c-38r8-5w76","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-26T13:20:07+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.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"}