Dagu affected by unauthenticated RCE via inline DAG spec in default configuration
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- —
- Fix status
- No fix listed
No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-306.
Summary
### Summary Dagu'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. ### Details `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. The `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. ### PoC ```bash curl -s -X POST http://TARGET:8080/api/v2/dag-runs \ -H "Content-Type: application/json" \ -d '{"name":"poc","spec":"steps:\n - name: rce\n command: id > /tmp/pwned\n"}' # Response: {"dagRunId":"<uuid>"} # /tmp/pwned contains: uid=1000(dagu) gid=1000(dagu) ``` Confirmed on `ghcr.io/dagu-org/dagu:latest` with no configuration changes. ### Impact Every 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.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | github.com/dagu-org/dagu (Go) | up to 1.30.3 | — | No fix listed | GHSA-6qr9-g2xw-cw92 |
- github.com/dagu-org/dagu (Go) Vendor— Affected up to 1.30.3 Fixed in — No fix listed GHSA-6qr9-g2xw-cw92
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-03 Threatist record created from GHSA-6qr9-g2xw-cw92
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences