Repository navigation
问题概述Windows 桌面版 DSH 在 同一台机器上,普通权限重新启动 DSH 后 shell 恢复,并验证了工作区内写入成功、越界写入被拒。之后再次以管理员身份启动,故障重现。管理员宿主与故障存在明显关联,但完整触发条件仍需进一步验证,见下方证据限制。 环境
复现步骤
$PSVersionTable.PSVersion.ToString()
Write-Output 'sandbox-ok'
实测结果直接运行 DSH 原生 runner
因此故障不局限于 PowerShell 版本或安装路径。没有测试 DSH 导出会话中的原始工具结果(脱敏摘录)用户报告普通权限启动后, 随后验证边界: 最后用管理员重启,同一工具再次返回: 早期已批准的不受限诊断返回 预期行为与临时恢复方法希望 本机普通权限启动后曾恢复,且工作区写入边界有效。 排查没有修改 DSH 包内代码或降低沙箱保护。可以优先比较已核实的普通/提升宿主 token、工作区模式、默认 DACL、private temp、控制台创建标志和继承 stdio 的组合;这些是建议调查方向,不是已确认根因。 相关反馈
本反馈补充 Windows 11 build 26200、桌面版 0.2.0-rc.2,以及启动权限切换的对照结果。 |
Replies: 1 comment 2 replies
|
The elevation correlation is useful, but Because the same runner works in read-only mode and fails for both PowerShell and cmd under |
The elevation correlation is useful, but
0xC0000142only establishesSTATUS_DLL_INIT_FAILED; it does not by itself prove the ACL is the cause. I’d capture the child’s effective environment and token for the failing and successful runs, then compare the exact launch boundary: integrity level, default DACL,PATH,TEMP/TMP, inherited stdio/console flags, and the resolvedpwsh.exe/cmd.exepath. Also check Windows Event Viewer → Application Error/SideBySide at the failure timestamp for the DLL or initialization module.Because the same runner works in read-only mode and fails for both PowerShell and cmd under
workspace-write, a useful regression is a minimal child that prints its token and exi…