Read the docs
TI-2026-24438 Aliases CVE-2026-31886GHSA-m4q3-457p-hh2x

Dagu has a Path Traversal via `dagRunId` in Inline DAG Execution

Priority HIGH 72CWE-22Published · Updated

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

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00438 38th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed dagu (dagu-org): 2.2.4

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

VendorProductAffected versionsFixed inStatusSource
dagu-orgdagubefore 2.2.42.2.4Patch availableCNA
—github.com/dagu-org/dagu (Go)up to 2.2.4—No fix listedGHSA-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

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:dagu:dagu:*:*:*:*:*:*:*:*before 2.2.4Vulnerabledagu-org
  • cpe:2.3:a:dagu:dagu:*:*:*:*:*:*:*:* Versions before 2.2.4 Vulnerable ·dagu-org

Remediation

  • Fix · CNA dagu (dagu-org) Fixed in 2.2.4

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-31886
  2. 2026-10-03 Alias added: GHSA-m4q3-457p-hh2x

References

  • 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