2.9.3Pre-release
Added 9
- WSL Containers (WSLC) is now available in public preview with native Linux container support through the wslc command line tool and SDK projections for C++ and C#/WinRT
- Container lifecycle management including create, run, start, kill, export, prune, and inspect containers with per-container resource limits and configurable stop signals
- Image operations including build with label support, pull, push, import, save, inspect, list, prune with filters, and multi-image delete
- Networking features including network creation and management, multi-network attachment, network aliases, container network mode, custom network types, port publishing, and network prune
- Volume management with VHD-backed volumes and Uid/Gid/Fixed driver options
- GPU-enabled containers with CDI and mounted GPU executables and libraries accessible to non-root users
- Named sessions with configurable storage location and default 32 GB session storage
- wslc logs command with timestamps, since, until, and n flags
- Container stats, structured CLI output with color, MSBuild and CMake build integration, and group policy support
Fixed 10
- Fixed a stuck systemctl poweroff that could block VM termination
- Fixed use-after-free issues in the virtiofs request worker thread and in WSLC container exec-process teardown
- Fixed a potential init crash by catching exceptions in scope_exit reset
- Fixed shared pointer circular reference leaks
- Fixed an IPv6 guest port reservation leak in Consomme networking
- Fixed mirrored mode port tracking for implicit binds from accept() calls and denied guest binds to the host ephemeral port range in mirrored mode
- Avoided a distro zombie state when WSL init dies in systemd mode
- Protected binfmt_misc from a cross-distro wipe at shutdown
- Fixed incorrect wslpath translation of \wsl.localhost when the current distro name is a subset of the target distro name
- Fixed CreateInstance failure when the Windows hosts file exceeds the message size cap
Release Notes
WSL Containers (WSLC) is now in Public Preview
We're excited to announce that WSL Containers (WSLC) is now available in public preview. WSLC brings native Linux container support to WSL, letting you build, run, and manage containers directly through the new wslc command line tool and a fully projected SDK (C++, C#/WinRT).
Highlights of what's available in this preview:
- Container lifecycle: create, run, start, kill, export, prune, and inspect containers, with per-container resource limits (
--cpus,--memory,--ulimit),--shm-size, and configurable stop signals. - Images: build (with
--labelsupport), pull, push, import, save (including multiple images in a single tar), inspect, list/prune with filters, and multi-image delete. - Networking: create and manage networks, attach containers to multiple networks, network aliases,
container:<name|id>network mode, custom network types, port publishing, and network prune. - Volumes: create, list, prune, and remove volumes, with VHD-backed volumes and
Uid/Gid/Fixeddriver options. - GPU support: GPU-enabled containers with CDI, mounted GPU executables and libraries accessible to non-root users.
- Sessions: named sessions with a default session created on demand, configurable storage location, and a default of 32 GB session storage.
- SDK: a C++ and C#/WinRT projection of the WSLC API, shipped as NuGet packages, plus a documented plugin API.
- Tooling:
wslc logswith--timestamps,--since,--until, and-n; container stats; structured CLI output with color; MSBuild and CMake build integration; and group policy (ADMX) support for management.
Bug Fixes
- Fixed a stuck
systemctl poweroffthat could block VM termination by @chemwolf6922 in https://github.com/microsoft/WSL/pull/40866 - Fixed use-after-free issues in the virtiofs request worker thread by @OneBlue in https://github.com/microsoft/WSL/pull/40792 and in WSLC container exec-process teardown by @yao-msft in https://github.com/microsoft/WSL/pull/40822
- Fixed a potential init crash by catching exceptions in
scope_exitreset by @OneBlue in https://github.com/microsoft/WSL/pull/40691 - Fixed shared pointer circular reference leaks by @chemwolf6922 in https://github.com/microsoft/WSL/pull/40480
- Fixed an IPv6 guest port reservation leak in Consomme (VirtioProxy) networking by @benhillis in https://github.com/microsoft/WSL/pull/40803
- Fixed mirrored mode port tracking for implicit binds from
accept()calls by @FetoiuCatalin in https://github.com/microsoft/WSL/pull/40287 and denied guest binds to the host ephemeral port range in mirrored mode by @FetoiuCatalin in https://github.com/microsoft/WSL/pull/40597 - Avoided a distro zombie state when WSL init dies in systemd mode by @chemwolf6922 in https://github.com/microsoft/WSL/pull/40433
- Protected
binfmt_miscfrom a cross-distro wipe at shutdown by @benhillis in https://github.com/microsoft/WSL/pull/40621 - Fixed incorrect
wslpathtranslation of\\wsl.localhostwhen the current distro name is a subset of the target distro name by @OneBlue in https://github.com/microsoft/WSL/pull/40687 - Fixed
CreateInstancefailure when the Windows hosts file exceeds the message size cap by @benhillis in https://github.com/microsoft/WSL/pull/40718 - Fixed various initial tty sizing issues and added test coverage by @OneBlue in https://github.com/microsoft/WSL/pull/40722
- Improved virtiofs and VirtioProxy performance with a per-device SWIOTLB pool by @benhillis in https://github.com/microsoft/WSL/pull/40654
Fixes and Improvements
- Renamed the VirtioProxy networking mode to Consomme by @benhillis in https://github.com/microsoft/WSL/pull/40873
- Updated VM termination logic to enforce timeouts and avoid hanging when init is stuck by @OneBlue in https://github.com/microsoft/WSL/pull/40431
- Improved DNS tunneling reliability and VirtioNet tracing by @benhillis in https://github.com/microsoft/WSL/pull/40430 and @damanm24 in https://github.com/microsoft/WSL/pull/40446
- Avoided
std::terminatein the Plan9FsUserContextdestructor by @benhillis in https://github.com/microsoft/WSL/pull/40417 - Hardened VHD attach/restore by impersonating the mounting user, fixing a TOCTOU by @benhillis in https://github.com/microsoft/WSL/pull/40782
- Fixed
MoveDistributionfailing withE_ACCESSDENIEDwhen setting the VHD owner under impersonation by @benhillis in https://github.com/microsoft/WSL/pull/40717 - Downgraded the system integrity-level impersonation token to high by @Brian-Perkins in https://github.com/microsoft/WSL/pull/40447
Security
- Updated the .NET runtime to 10.0.9 (CVE-2026-45491).
- Updated MSRDC to 1.2.7214 (CVE-2026-32157).
Full Changelog: https://github.com/microsoft/WSL/compare/2.7.10...2.9.3