DSH Cockpit 0.2.2
安全修复版本,建议所有用户升级。0.2.1 及更早版本存在下列问题。
修复内容
- 终端
cwd越界:runTerminalCommand未经工作区边界校验解析cwd,传入../../../../etc之类的相对路径可在工作区外执行命令。现改为与其他接口一致使用targetFrom()校验。 - 上报
cwd未受约束:命令执行后回传的cwd被直接采纳,cd /可把工作区外的目录带入下一条命令。现仅在路径位于工作区内时才采纳。 - 写接口缺少同源校验:此前仅
terminal受保护,reveal、write、transfer、upload均可被任意网页跨站调用,从而改写或上传工作区文件。 - Markdown 链接 XSS:预览时链接 URL 被直接写入
href,不可信.md中的javascript:链接可在具备文件读写能力的上下文中执行。现经safeUrl()过滤。 - 静态资源缺少防嗅探响应头:新增
X-Content-Type-Options: nosniff与Content-Security-Policy;SVG 改为以附件形式下载,避免同源内联执行脚本。
升级
dsh plugin --profile web add dsh-cockpit@0.2.2说明
新增 tests/security.test.mjs,覆盖上述每一项,修复前全部失败。仓库已启用 Dependabot 与 CodeQL。
完整变更见 CHANGELOG.md。