{"answers":{"affected":"3 open source packages ship an affected version, including github.com/dagu-org/dagu.","exploited":"There is no known exploitation of GHSA-6qr9-g2xw-cw92 in the wild and no public exploit code.","fix":"No fix has been published for GHSA-6qr9-g2xw-cw92 yet. Limit exposure of the affected software until one is available.","what":"GHSA-6qr9-g2xw-cw92 is a command injection vulnerability in github.com/dagu-org/dagu, published on 19 Feb 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for GHSA-6qr9-g2xw-cw92 and fix it if it is affected.\n\nWhat it is: GHSA-6qr9-g2xw-cw92 is a command injection vulnerability in github.com/dagu-org/dagu, published on 19 Feb 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of GHSA-6qr9-g2xw-cw92 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- github.com/dagu-org/dagu (Go): affected all versions; no fix listed\n- github.com/dagu-org/dagu (Go): affected all versions up to 1.30.3; no fix listed\n- github.com/dagu-org/dagu (Go): affected all versions up to 1.30.3; no fix listed\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/GHSA-6qr9-g2xw-cw92/ (Markdown: https://insights.sbomify.com/GHSA-6qr9-g2xw-cw92/index.md)","id":"GHSA-6qr9-g2xw-cw92","markdown":"https://insights.sbomify.com/GHSA-6qr9-g2xw-cw92/index.md","name":"GHSA-6qr9-g2xw-cw92","record":{"aliases":["GO-2026-4527"],"analysis":{"component_type":"server_software","fix_type":"configuration_change","impacts":["code_execution"],"network_reachable":"yes","non_default_config":false,"product_category":"Dagu workflow scheduler","requires_auth":"none","summary":"Unauthenticated attackers can execute arbitrary OS commands on Dagu instances via the API due to disabled authentication in the default configuration.","user_interaction":"not_required","vuln_class":"command_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"### Summary\nDagu's default configuration ships with authentication disabled. The `POST /api/v2/dag-runs` endpoint accepts an inline YAML spec and executes its shell commands immediately with no credentials required — any dagu instance reachable over the network is fully compromised by default.\n\n### Details\n`internal/service/app/config/loader.go:226` sets `AuthModeNone` as the default. With no auth mode configured, `internal/frontend/api/v2/handlers/api.go:520` returns `nil` from `requireExecute()` — all permission checks pass without a valid session.\n\nThe `POST /api/v2/dag-runs` endpoint accepts a `spec` field containing a full YAML DAG definition. The spec is parsed and the commands execute immediately on the host with no validation beyond YAML parsing.\n\n### PoC\n```bash\ncurl -s -X POST http://TARGET:8080/api/v2/dag-runs \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"poc\",\"spec\":\"steps:\\n  - name: rce\\n    command: id \u003e /tmp/pwned\\n\"}'\n# Response: {\"dagRunId\":\"\u003cuuid\u003e\"}\n# /tmp/pwned contains: uid=1000(dagu) gid=1000(dagu)\n```\nConfirmed on `ghcr.io/dagu-org/dagu:latest` with no configuration changes.\n\n### Impact\nEvery dagu deployment using default settings — every Docker deployment, every install following the documentation, every instance without explicit `DAGU_AUTH_MODE` configuration — is fully compromised without credentials. An attacker with network access gets OS command execution as the dagu process user.","ecosystems":["Go"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":false,"headline":"Dagu affected by unauthenticated RCE via inline DAG spec in default configuration","id":"GHSA-6qr9-g2xw-cw92","indexable":true,"kev":null,"kind":"advisory","links":{"ecosystem":"Go","product":null,"products":[],"type":"command_injection","year":"2026"},"n_packages":3,"n_references":null,"packages":[{"ecosystem":"Go","fixed":[],"introduced":["0"],"last_affected":[],"package":"github.com/dagu-org/dagu","purl":"pkg:golang/github.com/dagu-org/dagu","source":"GO-2026-4527"},{"ecosystem":"Go","fixed":[],"introduced":["0"],"last_affected":["1.30.3"],"package":"github.com/dagu-org/dagu","purl":null,"source":"GHSA-6qr9-g2xw-cw92"},{"ecosystem":"Go","fixed":[],"introduced":["0"],"last_affected":["1.30.3"],"package":"github.com/dagu-org/dagu","purl":"pkg:golang/github.com/dagu-org/dagu","source":"GHSA-6qr9-g2xw-cw92"}],"products":null,"published":"2026-02-19","related":[],"sources":[{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"Go Vulnerability Database","prefix":"GO"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":"Unauthenticated attackers can execute arbitrary OS commands on Dagu instances via the API due to disabled authentication in the default configuration.","url":"https://insights.sbomify.com/GHSA-6qr9-g2xw-cw92/"}