Repository navigation
Investigate resolving NU1903 for Tmds.DBus in Uno desktop sample #506
Copy link
Copy link
Closed
Labels
Description
Summary
Split out from #499 (now scoped to the Avalonia sample only). Restoring the Uno desktop-head sample on Linux/macOS surfaces a NU1903 high-severity restore warning:
warning NU1903: Package 'Tmds.DBus' 0.16.0 has a known high severity vulnerability, https://github.com/advisories/GHSA-xrw6-gwf8-vvr9
What's known so far
- Advisory: GHSA-xrw6-gwf8-vvr9 / CVE-2026-39959 — "malicious D-Bus peers can spoof signals, exhaust file descriptor resources, and cause denial of service". Patched version:
Tmds.DBus0.92.0 (fixes< 0.92.0). - Repro:
samples/todoapp/TodoApp.Uno/TodoApp.Uno/TodoApp.Uno.csproj(net10.0-desktophead) —dotnet restorefloatsTmds.DBus 0.16.0. - This restore attempt hit an unrelated, pre-existing
NU1605package-downgrade error (Uno.WinUI5.5.87 vs 5.4.22, driven by a mismatch betweenglobal.json'sUno.Sdkversion andCommunityToolkit.WinUI.Behaviors' floor), which blocks confirming the fullTmds.DBus0.16.0 dependency chain. This needs to be resolved, or at least understood, first. - Separately, there's an open question about bumping Uno itself from 5.4.5 to 6.6+ to pick up a non-vulnerable transitive version of this dependency — that's a larger migration effort and can be tracked as its own follow-up if a targeted fix here doesn't land cleanly.
Ask
Investigate one of:
- Resolve the pre-existing
Uno.WinUINU1605package-downgrade issue onTodoApp.Uno's desktop head, then re-check whether a compatible dependency bump already resolvesTmds.DBusto >= 0.92.0 (mirroring howAvalonia.FreeDesktop11.3.18 already resolved the equivalent Avalonia-side finding — see Investigate resolving NU1903 for Tmds.DBus.Protocol in Avalonia desktop sample #499). - If not, add an explicit
<PackageReference Include="Tmds.DBus" Version="0.92.0" />(or later) override toTodoApp.Uno's desktop head, mirroring theSQLitePCLRaw.bundle_e_sqlite3override pattern used in fix: resolve NU1903 for SQLitePCLRaw.lib.e_sqlite3 by pinning SQLitePCLRaw 3.x #498. - Confirm whether
Tmds.DBusis reachable code (Linux D-Bus paths) in the Uno desktop sample at all before deciding this is worth a version bump vs. just documenting/suppressing. - Consider whether this should be folded into a broader Uno 5.4.5 → 6.6+ major-version-bump effort instead of a standalone patch, if that migration is going to happen soon anyway.
Related
- Investigate resolving NU1903 for Tmds.DBus.Protocol in Avalonia desktop sample #499 — sibling issue, now scoped to the Avalonia sample's equivalent
Tmds.DBus.Protocolfinding (resolved via an 11.3.x patch bump, no major-version bump needed). - Investigate resolving NU1903 for SQLitePCLRaw.lib.e_sqlite3 (no patched version exists) #492 / fix: resolve NU1903 for SQLitePCLRaw.lib.e_sqlite3 by pinning SQLitePCLRaw 3.x #498 — original NU1903 investigation (
SQLitePCLRaw.lib.e_sqlite3) where this whole family of findings originated.
Reactions are currently unavailable
Activity
adrianhall commentedon Jul 7, 2026
Update from #511 / PR #519 CI
While implementing #511 (Phase 3 samples CI), I built out a
build-samples-todoapp-uno.ymlworkflow with a job per Uno head (android, ios, maccatalyst, windows, browserwasm, desktop). CI confirmed theNU1605reported in this issue is not desktop-specific - it fails restore on every head, sinceCommunityToolkit.WinUI.Behaviors'sPackageReferenceinTodoApp.Uno.csprojis unconditional (not scoped to any single TFM).Confirmed reproduction
CI log (
androidTFM,ubuntu-latest):Also reproduced locally (
dotnet restore samples/todoapp/TodoApp.Uno/TodoApp.Uno/TodoApp.Uno.csproj -p:TargetFramework=net10.0-desktop, no workload needed for this TFM) - identicalNU1605, plus the originalNU1903(Tmds.DBus0.16.0) warning this issue was filed for:Confirmed: the NU1903 warning is not currently a CI blocker on its own
This repo doesn't configure NuGet audit to fail builds anywhere (no
NuGetAuditMode/WarningsAsErrorsoverrides in anyDirectory.Build.props/Directory.Packages.props), so theTmds.DBusNU1903warning by itself would not fail restore/build. TheNU1605is what actually blocks every head - it's a restore-time error by default, not a warning.Root cause
global.jsonpinsUno.Sdkto5.4.5, which resolves the implicitUno.WinUIpackage to5.4.22.Directory.Packages.propspinsCommunityToolkit.WinUI.Behaviorsto8.2.250402, whose dependency floor requiresUno.WinUI >= 5.5.87.CommunityToolkit.WinUI.Behaviorsis referenced without any TFM condition, this conflict surfaces for every head's restore, not just desktop/windows.Impact on #511 / PR #519
I've disabled the
todoapp-unojob inbuild-samples.yml's orchestrator for now (commented out, not deleted) so PR #519 (the rest of Phase 3: Avalonia Android/iOS, MAUI Android/iOS) can land clean. Thebuild-samples-todoapp-uno.ymlfile itself is already fully built out (one job per head, TFM-scoped restore/build) and just needs to be re-added to the orchestrator once this issue is resolved.Suggested fix directions (for whoever picks this up)
Uno.Sdkinglobal.jsonpast whatever version resolvesUno.WinUIto>= 5.5.87(confirm this doesn't require other coordinated bumps for Uno's companion packages).CommunityToolkit.WinUI.Behaviorsversion whose floor is compatible withUno.WinUI 5.4.22(may need a downgrade from8.2.250402).Uno.WinUIinDirectory.Packages.propsto>= 5.5.87via central package management, overriding the SDK's implicit version - lowest-touch option, but carries some risk of drifting from whatever companion package versionsUno.Sdk 5.4.5otherwise expects to travel together.Once one of these gets
TodoApp.Uno.csprojrestoring cleanly for at least one head, I (or whoever picks this up) can re-enabletodoapp-unoinbuild-samples.ymland confirm the rest of the heads in CI.ci: disable todoapp-uno job pending CommunityToolkit#506
ci: add build-samples workflow for Phase 3 mobile heads (#511) (#519)
ci: pin iOS workload set + Xcode version for todoapp-avalonia/maui iO…
fix: resolve NU1605 blocking TodoApp.Uno restore by bumping Uno.Sdk t…