Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-73040— Dockge Path Traversal via Unvalidated Stack Name Allows Arbitrary Compose and .env Disclosure and Arbitrary Directory Deletion

Quick assessment

Affected
louislam dockge
Exploitation
Public or AI PoC available; prioritize validation
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Dockge 仅在写入路径上对堆栈名称进行验证。在 中, 函数内的白名单检查(要求名称匹配正则表达式 )仅通过 方法触发;而路径读取路径中, 方法直接使用 构造路径, 方法也使用 构造路径,且均未进行任何安全检查。 在 中的 Socket 处理器里,仅确认调用者已登录且名称为字符串,随后便直接将其传递给 。因此,包含路径遍历序列的名称可以解析到受管理的堆栈目录之外。 认证用户因此可以读取服务器进程能够访问的任何目录中的 和 值,从而泄露该目录中 文件或 Compose 文件中的密钥信息;还可以调用 方法,该方法执行

CVSS 8.8 · High EPSS 0.67% · P49

Affected Version Matrix 1

VendorProduct Version RangeStatus
louislam dockge ≤ 1.5.0 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-73040

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Dockge Path Traversal via Unvalidated Stack Name Allows Arbitrary Compose and .env Disclosure and Arbitrary Directory Deletion
Source: CVE Program / CVE List V5
Vulnerability Description
Dockge validates a stack name only on the write path. In backend/stack.ts the allow-list check in validate(), which requires the name to match ^[a-z0-9_-]+$, is reached from save() alone, while the path getter returns path.join(this.server.stacksDir, this.name) and Stack.getStack builds path.join(server.stacksDir, stackName) with no check. The socket handlers in backend/agent-socket-handlers/docker-socket-handler.ts confirm the caller is logged in and that the name is a string, then pass it straight to Stack.getStack, so a name containing traversal sequences resolves outside the managed stacks directory. An authenticated user can therefore read the composeENV and composeYAML values of any directory the server process can reach, which discloses the secrets in that directory's .env or Compose file, and can invoke delete(), which runs docker compose down and then fsAsync.rm on the traversed path with recursive and force set, removing that directory. Disclosure is limited to files named .env or an accepted Compose filename, and deletion requires the target directory to hold a valid Compose file so that docker compose down exits successfully. Dockge commonly runs as root with access to the Docker socket, so the reachable set includes unrelated applications on the host. Instances configured with disableAuth, a supported option that logs the caller in as admin automatically, expose both operations without authentication.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
对路径名的限制不恰当(路径遍历)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
louislam dockge 0 ~ 1.5.0 -

II. Public POCs for CVE-2026-73040

# POC Description Source Link Shenlong Link
AI-Generated POC Premium
Qwen3.6-35B-A3B · 8830 chars
Pro+ exclusive includes:
Vulnerability reproduction recording (real sandbox build + trigger, exclusive)
In-depth vulnerability mechanism
Trigger conditions & impact
Full executable POC code
Exploit chain & mitigation
POC zip download
100+ AI POC generations per month

III. Intelligence Information for CVE-2026-73040

登录查看更多情报信息。

Patches & Fixes for CVE-2026-73040 (4)

Vendor Advisories for CVE-2026-73040 (1)

Proof of Concept for CVE-2026-73040 (1)

Vendor Pages for CVE-2026-73040 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-73040

No comments yet


Leave a comment