CVE-2026-31882
Published: 13 March 2026
Summary
CVE-2026-31882 is a high-severity Missing Authentication for Critical Function (CWE-306) vulnerability in Dagu Dagu. Its CVSS base score is 7.5 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 38.0th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.
The strongest mitigations our analysis identified are NIST 800-53 AC-14 (Permitted Actions Without Identification or Authentication) and AC-25 (Reference Monitor).
Deeper analysis
CVE-2026-31882 is a missing authentication vulnerability (CWE-306) in Dagu, an open-source workflow engine featuring a built-in web user interface. In versions prior to 2.2.4, when Dagu is configured with HTTP Basic authentication (DAGU_AUTH_MODE=basic), all Server-Sent Events (SSE) endpoints remain accessible without credentials. This issue stems from the buildStreamAuthOptions() function, which sets BasicAuthEnabled to true for SSE/streaming endpoints but defaults AuthRequired to false (the Go zero value). As a result, the authentication middleware in internal/service/frontend/auth/middleware.go permits unauthenticated requests, bypassing protections applied to the REST API.
Network-accessible unauthenticated attackers can exploit this vulnerability with low complexity and no privileges or user interaction required. Successful exploitation grants access to sensitive real-time data, including DAG execution details, workflow configurations, execution logs, and queue status. The CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) underscores the high confidentiality impact without affecting integrity or availability.
Dagu addressed this vulnerability in version 2.2.4. Security practitioners should upgrade affected deployments immediately. Key resources include the fixing commit (https://github.com/dagu-org/dagu/commit/064616c9b80c04824c1c7c357308f77f3f24d775), pull request (https://github.com/dagu-org/dagu/pull/1752), release notes (https://github.com/dagu-org/dagu/releases/tag/v2.2.4), and GitHub security advisory (https://github.com/dagu-org/dagu/security/advisories/GHSA-9wmw-9wph-2vwp).
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2026-12087
Vulnerability details
Dagu is a workflow engine with a built-in Web user interface. Prior to 2.2.4, when Dagu is configured with HTTP Basic authentication (DAGU_AUTH_MODE=basic), all Server-Sent Events (SSE) endpoints are accessible without any credentials. This allows unauthenticated attackers to access real-time…
more
DAG execution data, workflow configurations, execution logs, and queue status — bypassing the authentication that protects the REST API. The buildStreamAuthOptions() function builds authentication options for SSE/streaming endpoints. When the auth mode is basic, it returns an auth.Options struct with BasicAuthEnabled: true but AuthRequired defaults to false (Go zero value). The authentication middleware at internal/service/frontend/auth/middleware.go allows unauthenticated requests when AuthRequired is false. This vulnerability is fixed in 2.2.4.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Missing authentication on public-facing web UI/SSE endpoints in Dagu directly enables remote exploitation of the application without credentials, matching T1190 for initial unauthorized access to sensitive workflow data.
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
AC-3 enforces approved authorizations for logical access, directly preventing unauthenticated access to sensitive SSE endpoints in Dagu.
AC-14 explicitly prohibits sensitive actions like SSE endpoint access without identification and authentication unless permitted.
AC-25 requires a reference monitor mechanism to enforce access control decisions, mitigating the flawed authentication middleware that allowed SSE bypass.