Skip to content2026.05.18 发布 v0.2.2
🛡️ 安全修复
hypervisor: vmm-sys-util 升级至 0.12.1(CVE-2023-50711, GHSA-875g-mfp6-g7f9):FamStructWrapper::deserialize 未验证 header 长度与柔性数组长度是否匹配,可导致 safe Rust 代码触发越界内存访问。现已固定为 hypervisor workspace 所有 crate 共享的版本。agent / hypervisor: bytes 和 env_logger 安全依赖升级,作为同批依赖刷新的一部分。- 回滚
time crate 升级(CVE-2026-25727):CubeSandbox 仅使用 Rfc3339 进行时间戳格式化输出,从不对不可信输入执行 Rfc2822 解析,攻击面不可达。该升级已回滚,待 MSRV 就绪后单独跟进处理。
🛠️ 关键修复
- 修复 CubeMaster 模板镜像任务重复创建问题:在
template_image_job 表新增 request_id 字段并添加 (request_id, operation) 唯一索引,使任务提交具备幂等性,彻底消除并发或重试 API 调用引发的重复构建任务。 - 修复
cubecli exec 在 stdin EOF 时的 nil 指针 panic:StdinCloser.Read 在 stdin 到达 EOF 时触发 nil 指针解引用,导致 exec 生命周期被静默中断。修复后改用 errors.Is(err, io.EOF) 进行正确的错误包装比对,shim 日志现可正常输出成对的 exec 生命周期记录。 - 修复 PVM 模板的 ext4 artifact 运行时文件物化问题:简化
RefreshArtifactRuntimeFiles、validateArtifactRuntimeFilesPresent 和 ensureArtifactRuntimeFiles,使其仅处理内核文件;将 copyKernelFileAtomically 重命名为 CopyFileAtomically,支持在包外复用。
✨ 功能增强
- E2B 兼容默认暴露端口:默认沙箱暴露端口由 8080/32000 改为 49983,与 E2B 沙箱协议对齐。
CubeMaster 成为默认端口的唯一权威来源,Cubelet 和 network-agent 中的硬编码默认值已移除。 - Cubelet 存储插件支持配置
cmdTimeout:在存储插件 TOML 配置中新增可选 cmd_timeout 字段,替代原有硬编码的 3 秒超时,允许运维人员在高并发负载下提高大文件 ext4 操作的超时限制,无需重新编译。字段缺省时行为不变。 - Cubelet
newExt4RawByReflinkCopy 错误诊断增强:错误信息现在包含操作耗时、目标/基础文件大小及可用磁盘空间,格式为 [step=N/4 cmd="…" elapsed=…ms target=size=… base=size=… free=…B]。 - 部署脚本支持从
.env 同步 CubeMaster 自定义端口:cubemaster.yaml 引入 __CUBE_SANDBOX_MYSQL_PORT__ / __CUBE_SANDBOX_REDIS_PORT__ 占位符,由 install.sh 从 .env 文件自动替换,无需手动修改 YAML。
⚙️ 工程改进
cubecli: 移除废弃的 listmd 命令:删除无法访问的 listmd 子命令及其 128 行实现代码。
🤖 CI / DevOps
- Claude 驱动的 AI 代码审查与 issue 分类自动化:在
.agents/agents/ 下引入五个 AI 审查 Agent(代码质量、性能、安全、测试覆盖率、文档准确性)。自动化工作流负责 PR 代码审查、重复 issue 检测和 issue 标签分类。新增 scripts/gh.sh 和 scripts/edit-issue-labels.sh 辅助脚本。
📚 文档更新
- 新增
CONTRIBUTING_zh.md:CONTRIBUTING.md 的完整中文翻译版本。 - 社区文档 PR 要求放宽:
CONTRIBUTING.md 和 CONTRIBUTING_zh.md 均改为支持单语种提交,双语文档为可选项。 - 计算节点端口分配范围文档化:
docs/architecture/network.md(中英文)新增三段端口范围说明:10000–19999(network-agent)、20000–29999(CubeProxy 沙箱访问)、30000–65535(CubeVS SNAT)。 - 新增社区文档章节:VitePress 新增双语故障排查、用例和集成三个章节,并配置 CI 工作流强制执行双语一致性检查。
- 域名更新:CNAME 从
docs.cubesandbox.ai 切换至 cubesandbox.com。 - 修复
browser-sandbox 示例:新增缺失的 load_dotenv() 调用和 python-dotenv 依赖,确保 .env 变量在脚本运行前正确加载。 - 微信群二维码更新。