# 安全说明

## 安全边界

本库遵循而不扩展 WASI capability 模型。能够访问哪些目录、环境变量和 descriptor，
完全由运行时在实例化 wasm 模块时授予。`GuestPath` 只接受 guest 相对路径并阻止词法
父级越界，但它不能弥补授予范围过大的 preopen。

建议：

- 只预开放应用所需的最小宿主目录，避免直接授予用户主目录或文件系统根；
- 不把不可信输入直接用于符号链接目标或 overwrite/recursive 删除操作；
- 对来自 stdin、参数和环境变量的数据实施应用层大小限制；
- 处理 `WasiError` 时记录 guest 路径，不要拼接或泄漏额外的宿主路径；
- 在处理攻击者可控制的目录树时为 `walk(max_depth=...)` 设置深度上限；
- 发布前锁定并审查 `moon.mod` 中的第三方依赖版本。

`remove_tree` 和 `copy_tree` 不会跟随符号链接；这是防止递归操作意外越界的有意设计。
`atomic_write` 使用同目录随机临时文件及 exclusive create，但不提供多进程事务或文件锁。

## 报告漏洞

请不要在公开 issue 中披露仍可利用的漏洞。通过仓库所有者在 GitHub 上提供的私密安全
报告渠道提交复现步骤、影响版本、宿主运行时及最小样例。维护者确认后会协调修复、
变更记录与版本发布。

安全报告按维护者可用时间尽力响应，目前不承诺固定的安全响应 SLA。
