Dagu has a Path Traversal via `dagRunId` in Inline DAG Execution
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- Low · Low · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
Dagu is a workflow engine with a built-in Web user interface. Prior to 2.2.4, the dagRunId request field accepted by the inline DAG execution endpoints is passed directly into filepath.Join to construct a temporary directory path without any format validation. Go's filepath.Join resolves .. segments lexically, so a caller can supply a value such as ".." to redirect the computed directory outside the intended /tmp/<name>/<id> path. A deferred cleanup function that calls os.RemoveAll on that directory then runs unconditionally when the HTTP handler returns, deleting whatever directory the traversal resolved to. With dagRunId set to "..", the resolved directory is the system temporary directory (/tmp on Linux). On non-root deployments, os.RemoveAll("/tmp") removes all files in /tmp owned by the dagu process user, disrupting every concurrent dagu run that has live temp files. On root or Docker deployments, the call removes the entire contents of /tmp, causing a system-wide denial of service. This vulnerability is fixed in 2.2.4.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| dagu-org | dagu | before 2.2.4 | 2.2.4 | Patch available | CNA |
| — | github.com/dagu-org/dagu (Go) | up to 2.2.4 | — | No fix listed | GHSA-m4q3-457p-hh2x |
- dagu Vendordagu-org Affected before 2.2.4 Fixed in 2.2.4 Patch available CNA
- github.com/dagu-org/dagu (Go) Vendor— Affected up to 2.2.4 Fixed in — No fix listed GHSA-m4q3-457p-hh2x
Remediation
- Fix · CNA dagu (dagu-org) Fixed in 2.2.4
Timeline
- 2026-10-02 Threatist record created from CVE-2026-31886
- 2026-10-03 Alias added: GHSA-m4q3-457p-hh2x
References
More dagu-org Dagu vulnerabilities
- TI-2026-24434 Dagu SSE Authentication Bypass in Basic Auth Mode CVSS 3.1HIGH 7.5
- TI-2026-21984 Dagu: Path traversal in DAG creation allows arbitrary YAML file write outside DAGs directory CVSS 4.0HIGH 7.1
- TI-2026-25750 Dagu has an incomplete fix for CVE-2026-27598: path traversal via %2F-encoded slashes in locateDAG CVSS 3.1HIGH 8.1
Sources
- CVE-2026-31886 · CVE Program
- CVE-2026-31886 · NVD
- FIRST EPSS
- GHSA-m4q3-457p-hh2x · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences