Skip to content

Process container: permissive UI policy values are not grantable #1245

Description

@theelliotm

Relevant area(s)

Windows

Brief description of your issue

Permissive UI policy values are not grantable in the process container. Setting processContainer.ui.desktopSystemControl to true, processContainer.ui.systemSettings to display, parameters, or all, or ui.clipboard to a permissive value still leaves the capability blocked inside the sandbox.

This is 36 failing assertions in the 2026-09-23 nightly run, on every Windows job:

Two things narrow this down:

  • The restrictive direction works. Only granting fails.
  • processContainer.ui.isolation is fully bidirectional on all four hosts. isolation=desktop -> HANDLES=allowed passes, isolation=handles -> HANDLES=blocked passes, and the negative control passes. So the UI plumbing works in general.

resolve_ui_restrictions (src/core/wxc_common/src/ui_policy.rs:68-122) computes the mask correctly, so the loss is below that layer. It reproduces on both the job object path (T3) and the PSEC spec path (T1), which suggests it is not specific to either mechanism.

Steps to reproduce

  1. Run tests/scripts/run_processcontainer_ui_policy_matrix_test.ps1 on any supported Windows host.
  2. Watch phase P4e.

Expected behavior

docs/process-container/UIPolicy_Schema.md:95 and docs/process-container/os-version-support.md:177-182 document all three of these as supported on every build, so a permissive value should leave the capability usable.

Actual behavior

The UI probe reports the capability blocked no matter what was configured:

P4e :: pcUi.desktopSystemControl=true -> DESKTOP=allowed (expected=allowed; got=blocked; full=DESKTOP=blocked)
P4e :: pcUi.systemSettings=all -> SYSTEMPARAMETERS=allowed (expected=allowed; got=blocked)
P4e :: pcUi.systemSettings=display -> DISPLAYSETTINGS=allowed (expected=allowed; got=blocked)
P4e :: ui.clipboard=all -> READCLIPBOARD=allowed (expected=allowed; got=blocked)
P4e :: baseline: a fully permissive UI policy grants every UI capability
       (still denied: READCLIPBOARD, WRITECLIPBOARD, SYSTEMPARAMETERS, DISPLAYSETTINGS, DESKTOP)

Either enforcement is wrong or the support matrix is. If the matrix is wrong, the docs should say these are always denied and the tests should be updated to match.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Backend-ProcessContainerWindows ProcessContainer behavior, including BaseContainer and AppContainer isolation tiers.Issue-BugSomething is not working as intended.OS-WindowsApplies specifically to Windows hosts or Windows behavior.Priority2High-impact issue affecting key functionality; prioritize for the next appropriate release.Release v1.0Issues tracked for the version 1.0 release

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions