You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restrict DAC/DBI download to verifiable cases and verify DBI
Enforce that a DAC/DBI is only downloaded from a symbol server when it
will be authenticode-verified before it is loaded and run.
- SOS: only download DAC/DBI on a Windows host and only when DAC
signature verification is enabled (downloaded => verified). On other
hosts, or when verification is disabled, the matching DAC/DBI must be
provided locally (collocated runtime or 'setclrpath').
- Verify the DBI signature on load like the DAC, via a shared
TOCTOU-safe VerifyAndLoadLibrary helper; consolidate DAC/DBI
verification onto the single DacSignatureVerificationEnabled setting.
- dotnet-symbol: only stage PE debugging libraries (Windows DAC and the
Windows-hosted cross-OS DAC/DBI) via KeyTypeFlags
WindowsDebuggingLibrariesOnly; never download native ELF/Mach-O
DAC/DBI, since a staged file may later be loaded by another tool. Warn
on non-Windows --debugging.
- IRuntime.GetDbiFilePath now returns whether the DBI requires signature
verification, matching GetDacFilePath.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8acf622f-1741-40d6-b7df-135160672aa3
// Native (ELF/Mach-O) DAC/DBI are never downloaded from the symbol server because they
167
+
// are loaded unverified; only the Windows and Windows-hosted cross-OS (PE) debugging
168
+
// libraries are. Warn so users on non-Windows know to obtain the matching native DAC/DBI
169
+
// from the runtime install or via SOS 'setclrpath' when debugging on this platform.
170
+
tracer.Warning("Native DAC/DBI debugging libraries are not downloaded on this platform; only the Windows cross-OS debugging libraries are. Obtain native DAC/DBI from the matching runtime or via 'setclrpath'.");
0 commit comments