From d7f68ff5e52d0f545f4cfd83c2e96d648ba38962 Mon Sep 17 00:00:00 2001 From: Ben Hillis Date: Tue, 31 Mar 2026 19:41:07 -0700 Subject: [PATCH] wslc: ensure dns tunneling is disabled with virtioproxy networking mode --- src/windows/common/WslCoreConfig.cpp | 14 +++++--------- src/windows/service/exe/WslCoreVm.cpp | 3 +-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/windows/common/WslCoreConfig.cpp b/src/windows/common/WslCoreConfig.cpp index 26c1a4b40..ee8b780aa 100644 --- a/src/windows/common/WslCoreConfig.cpp +++ b/src/windows/common/WslCoreConfig.cpp @@ -474,19 +474,15 @@ void wsl::core::Config::Initialize(_In_opt_ HANDLE UserToken) EnableVirtio9p = false; } - if (NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored && NetworkingMode != NetworkingMode::VirtioProxy) + if (NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored) { - VALIDATE_CONFIG_OPTION( - (NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored && NetworkingMode != NetworkingMode::VirtioProxy), - EnableDnsTunneling, - false); + VALIDATE_CONFIG_OPTION((NetworkingMode != NetworkingMode::Nat && NetworkingMode != NetworkingMode::Mirrored), EnableDnsTunneling, false); } - if (!EnableDnsTunneling || NetworkingMode == NetworkingMode::VirtioProxy) + if (!EnableDnsTunneling) { - VALIDATE_CONFIG_OPTION(!EnableDnsTunneling || NetworkingMode == NetworkingMode::VirtioProxy, BestEffortDnsParsing, false); - VALIDATE_CONFIG_OPTION( - !EnableDnsTunneling || NetworkingMode == NetworkingMode::VirtioProxy, DnsTunnelingIpAddress, std::optional{}); + VALIDATE_CONFIG_OPTION(!EnableDnsTunneling, BestEffortDnsParsing, false); + VALIDATE_CONFIG_OPTION(!EnableDnsTunneling, DnsTunnelingIpAddress, std::optional{}); } if (NetworkingMode != NetworkingMode::Mirrored) diff --git a/src/windows/service/exe/WslCoreVm.cpp b/src/windows/service/exe/WslCoreVm.cpp index c1780a6bf..7553a9574 100644 --- a/src/windows/service/exe/WslCoreVm.cpp +++ b/src/windows/service/exe/WslCoreVm.cpp @@ -513,7 +513,7 @@ void WslCoreVm::Initialize(const GUID& VmId, const wil::shared_handle& UserToken message->MemoryReclaimMode = static_cast(m_vmConfig.MemoryReclaim); message->EnableDebugShell = m_vmConfig.EnableDebugShell; message->EnableSafeMode = m_vmConfig.EnableSafeMode; - message->EnableDnsTunneling = m_vmConfig.EnableDnsTunneling && m_vmConfig.NetworkingMode != NetworkingMode::VirtioProxy; + message->EnableDnsTunneling = m_vmConfig.EnableDnsTunneling; message->DefaultKernel = m_defaultKernel; message->KernelModulesDeviceId = m_kernelModulesDeviceId; message.WriteString(message->HostnameOffset, wsl::windows::common::filesystem::GetLinuxHostName()); @@ -571,7 +571,6 @@ void WslCoreVm::Initialize(const GUID& VmId, const wil::shared_handle& UserToken { wsl::core::VirtioNetworkingFlags flags = wsl::core::VirtioNetworkingFlags::Ipv6; WI_SetFlagIf(flags, wsl::core::VirtioNetworkingFlags::LocalhostRelay, m_vmConfig.EnableLocalhostRelay); - WI_SetFlagIf(flags, wsl::core::VirtioNetworkingFlags::DnsTunneling, m_vmConfig.EnableDnsTunneling); m_networkingEngine = std::make_unique( std::move(gnsChannel), flags, LX_INIT_RESOLVCONF_FULL_HEADER, m_guestDeviceManager, m_userToken); }