-
Notifications
You must be signed in to change notification settings - Fork 269
MXC 0.7 processContainer: granted filesystem paths unusable — absolute paths doubled to C:\C:\..., writes false-succeed #1146
Copy link
Copy link
Open
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:data-lossThis issue is about lost, corrupted, or silently dropped user/session/config data.This issue is about lost, corrupted, or silently dropped user/session/config data.impact:securityThis issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.This issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.issue-rating: 🦪 silver shellfishThin issue quality; more reproduction proof or environment detail is needed.Thin issue quality; more reproduction proof or environment detail is needed.
Description
Metadata
Metadata
Assignees
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:data-lossThis issue is about lost, corrupted, or silently dropped user/session/config data.This issue is about lost, corrupted, or silently dropped user/session/config data.impact:securityThis issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.This issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.issue-rating: 🦪 silver shellfishThin issue quality; more reproduction proof or environment detail is needed.Thin issue quality; more reproduction proof or environment detail is needed.
Type
Fields
Priority
None yet
Projects
StatusShow more project fields
Backlog
Summary
On the Windows Node (MXC 0.7
processContainerbackend, Bind Filter/BFS), folders granted as read/write in the sandbox settings page (e.g. Downloads, Documents) are unusable inside the container. Root cause appears to be a path-normalization bug, not a policy/allowlist choice. Writes report false success, risking silent data loss.Environment
/mnt/c; all FS work routes to node)processContainer(wxc-exec.exe, Bind Filter/BFS)Verified, reproducible symptoms
Absolute-path doubling (100% repro):
attrib "C:\Users\<user>\Downloads"returnsPath not found - C:\C:\Users\<user>\Downloads. Same for Documents, Desktop, andC:\Windows. The backend prepends container rootC:\to already-absolute paths.Granted folder, three different failures: for
%USERPROFILE%\Downloads:if existreports MISSING;echo x > ...\t.txtreturns exit 0;type ...\t.txtreturns "syntax is incorrect";dir ...returns "Access is denied".Relative write false-success:
echo hi > rel.txtreturns exit 0, butattrib rel.txtreturns "Path not found" for the container CWD path.PowerShell output swallowed:
cmd /c echo HELLOworks;powershell -NoProfile -Command "Write-Output 'X'"returns only DACL-recovery stderr, no stdout. Source appears to bewxc-host-prep.exe/filesystem_dacl.rsmanaging the\Device\Nulldescriptor and erroring withGetNamedSecurityInfoW: WIN32_ERROR(2)on its own temp dirs.Hard timeout on
\\?\-prefixed and forward-slash (C:/...) paths.Config model (from
wxc-exec.exestrings)Keys:
readwritePaths,readonlyPaths,deniedPaths,least_privilege_mode,containment. Filesystem is default-deny ("Paths are denied by default unless granted via readwritePaths or readonlyPaths"). Binary also carries a pwsh caveat ("add ... toreadonlyPaths... or upgrade to pwsh 7.7+") and a ReFS/Dev Drive warning ("Bind Filter (BFS) does not work correctly on ReFS volumes"). Intended behavior: granted folders go intoreadwritePathsand become usable. The defect is that they don't.Root cause (hypothesis)
Path-normalization/prefix-join bug in the processContainer Bind Filter: already-absolute
C:\...paths get re-rooted against the container root (C:\C:\...), and granted mounts aren't registered for stat/read even when writes are redirected. Net:readwritePathsgrants never resolve inside the container.Impact
Requested fixes
C:\...paths (fixC:\C:\...doubling).readwritePaths/readonlyPathsgrants actually stat/list/read/write inside the container.\\?\/ forward-slash paths without hanging.readwritePaths/readonlyPathsand surface active mounts.Repro (single-line cmd on node; MXC 0.7 rejects CR/LF in commands)
attrib "C:\Users\<user>\Downloads"- observeC:\C:\...in error.echo x > "%USERPROFILE%\Downloads\t.txt"(exit 0), thentype/dirsame path - syntax error / access denied.echo hi > rel.txtthenattrib rel.txt- write ok, stat "Path not found".cmd /c echo HELLOvspowershell -NoProfile -Command "Write-Output 'X'"- cmd works, powershell stdout swallowed.