支持运行时解析的存储支持的秘密,而不保留明文
作者: roninjin10创建于 2026年7月18日更新于 2026年9月17日
标签SecurityVulnerability
环境说明
- Microsandbox 运行时和 Go SDK:
v0.6.6 - 下游提供商:使用
GitHub.com/superradcompany/microsandbox/sdk/go v0.6.6的 Plue Go Microsandbox 工作程序 - Spike 主机:Apple Silicon 上的 macOS 26.2(
arm64),Go 1.26.5,原生 HVF 运行时 - 拒绝是在共享 Rust SDK 核心中发生的,在执行虚拟机特定代码之前,因此也适用于 KVM 主机。
最小重现
创建一个沙箱,然后请 Go SDK 计划一个由公共 Store 源支持的秘密:
msb create alpine --name store-source-repro
mkdir store-source-repro && cd store-source-repro
go mod init store-source-repro
go get GitHub.com/superradcompany/microsandbox/sdk/[email protected]package main
import (
"context"
"fmt"
"log"
microsandbox "GitHub.com/superradcompany/microsandbox/sdk/go"
)
func main() {
ctx := context.Background()
handle, err := microsandbox.GetSandbox(ctx, "store-source-repro")
if err != nil {
log.Fatal(err)
}
plan, err := handle.Modify(ctx, microsandbox.ModifyOptions{
DryRun: true,
Secrets: map[string]microsandbox.SecretModifySpec{
"IRON_CAPABILITY": {
Store: "file:///run/iron-capabilities/workspace-repro",
Placeholder: "$IRON_CAPABILITY",
AllowedHosts: []string{"iron.internal.example"},
},
},
})
if err != nil {
log.Fatal(err)
}
for _, conflict := range plan.Conflicts {
fmt.Println(conflict.Message)
}
}
go run . 打印:
```text
secret IRON_CAPABILITY: store-backed secret sources are not supported yet内容来源: superradcompany/microsandbox