CVE-2026-31882Dagu是一款内置Web用户界面的工作流引擎。在2.2.4之前的版本中,当Dagu配置为使用HTTP Basic认证模式(DAGU_AUTH_MODE=basic)时,所有Server-Sent Events(SSE)端点存在严重的认证绕过漏洞。攻击者可以在无需任何凭证的情况下访问实时DAG执行数据、工作流配置信息、执行日志以及队列状态等敏感信息,成功绕过REST API的认证保护机制。该漏洞源于buildStreamAuthOptions()函数在认证模式为basic时,返回的auth.Options结构中BasicAuthEnabled被设置为true,但AuthRequired字段默认为Go语言的零值false,导致认证中间件错误地允许未经认证的请求通过。
漏洞根本原因在于Dagu框架中SSE/流式端点的认证选项构建逻辑存在缺陷。buildStreamAuthOptions()函数在处理basic认证模式时,返回的auth.Options结构体配置不当:虽然启用了BasicAuthEnabled标志,但AuthRequired字段保持为false(Go语言默认零值)。在internal/service/frontend/auth/middleware.go中的认证中间件会根据AuthRequired字段决定是否放行请求,当该值为false时,所有请求都被允许通过,无需任何凭证验证。攻击者只需构造针对SSE端点的HTTP请求(如访问/dagu/sse或相关流式API端点),即可在未提供认证信息的情况下获取敏感数据。攻击成功的前提条件是目标Dagu实例配置了basic认证模式且SSE端点暴露在网络中。