CVE-2026-33747BuildKit是一个用于将源代码转换为构建构件的工具包。在v0.28.1版本之前,当使用自定义BuildKit前端时,前端可以构造特定的API消息,导致文件被写入执行上下文的BuildKit状态目录之外。该漏洞需要使用通过`#syntax`或`--build-arg BUILDKIT_SYNTAX`设置的不受信任前端才会触发。使用官方受信任的前端(如docker/dockerfile)不受此问题影响。该问题已在v0.28.1版本中修复。
该漏洞的核心在于BuildKit未能正确隔离自定义前端对文件系统的操作权限。BuildKit允许用户通过`#syntax`或`--build-arg BUILDKIT_SYNTAX`引入外部前端来解析构建指令。在受影响版本中,系统未对前端请求的写入路径进行严格的边界检查。攻击者可以构建一个恶意的BuildKit前端镜像,并在其生成的API消息中包含路径遍历字符(如`..`)。当受害者使用该不受信任的前端执行构建任务时,BuildKit守护进程会将文件写入超出其预定状态目录的位置,即宿主机文件系统的任意路径。这种任意文件写入漏洞可能导致系统关键配置被篡改、恶意二进制文件被植入,进而导致权限提升或系统完全被控。