Skip to content

virtiofs: fix an issue where if the VM is launched by an elevated user, non-elevated shells will have elevated virtiofs access.#13877

Merged
benhillis merged 2 commits intomasterfrom
user/benhill/virtiofs_admin_debugging
Dec 11, 2025
Merged

virtiofs: fix an issue where if the VM is launched by an elevated user, non-elevated shells will have elevated virtiofs access.#13877
benhillis merged 2 commits intomasterfrom
user/benhill/virtiofs_admin_debugging

Conversation

@benhillis
Copy link
Copy Markdown
Member

Resolves an issue with virtiofs when WSLg is enabled. If an elevated token launches the VM, then all virtiofs access will have access rights of the launching token. A test was added to validate the fix, the previous tests did not hit this because they run with WSLg disabled.

…r, non-elevated shells will have elevated virtiofs access.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a security issue where VirtioFS mounts incorrectly inherit elevated access rights when the VM is launched by an elevated user, even when accessed from non-elevated shells. The fix ensures that the appropriate VirtioFS class ID is selected based on the token's elevation status when WSLg (GUI applications) is enabled.

Key changes:

  • Modified virtiofs device initialization to use elevation-aware class ID selection
  • Added comprehensive tests to validate elevated and non-elevated access with WSLg enabled

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/windows/service/exe/WslCoreVm.cpp Implements the fix by checking token elevation and selecting the appropriate VIRTIO_FS class ID (admin vs non-admin) when adding the wslg shared memory device
test/windows/DrvFsTests.cpp Adds two new test methods (DrvfsMountElevatedSystemDistroEnabled and DrvfsMountNonElevatedSystemDistroEnabled) that validate the fix by testing mount types and file creation permissions with WSLg enabled

Comment thread test/windows/DrvFsTests.cpp Outdated
Comment thread test/windows/DrvFsTests.cpp Outdated
@benhillis benhillis merged commit 19f06f9 into master Dec 11, 2025
6 checks passed
@benhillis benhillis deleted the user/benhill/virtiofs_admin_debugging branch April 23, 2026 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants