Repository navigation
Replies: 2 comments 1 reply
|
你的取证很干净( 1. 真根因可以精确到行(不必猜)你附件里猜了两种可能(带
const applyResult = api.setNamedSecurityInfoW(
path, abi.SE_FILE_OBJECT,
labelEdit.kind === 'keep'
? abi.DACL_SECURITY_INFORMATION
: abi.DACL_SECURITY_INFORMATION | abi.LABEL_SECURITY_INFORMATION,
null, null, newAcl, labelEdit.kind === 'apply' ? labelEdit.acl : null,
)
为什么 DACL 改得动、调用却 Win32 5:
⇒ 所以这是设计内的前置条件失败,不是代码缺陷。你那句 2.
|
Uh oh!
There was an error while loading. Please reload this page.
Windows 非提升标准用户,目录属主为本人,目录 ACL 无 Deny 项、继承的 BUILTIN\Administrators:(F) 因令牌无该组而不生效, 令牌对目录的有效掩码为 Authenticated Users: 0x1301bf。 DSH workspace-write 预授权调用 SetNamedSecurityInfoW 时因缺 WRITE_OWNER 得到 Win32 5, 导致该模式下所有 shell 命令在启动前即失败;danger-full-access 下命令正常。 工作区换成全新目录同样复现;该目录上任一历史沙箱条目(掩码 0x110156)均不含 WRITE_DAC/WRITE_OWNER。
此bug会导致无法在沙箱内执行pwsh命令。
DSH-缺陷反馈-workspace-write预授权Win32-5.md
附件是DSH自己写的反馈
All reactions