Skip to content

Commit 232fd8f

Browse files
pmaxhoganclaude
andauthored
fix(deps): bump tauri-winrt-notification to drop vulnerable quick-xml (closes #89) (#129)
## Summary Fixes #89. `cargo deny check` was ignoring two quick-xml DoS advisories (RUSTSEC-2026-0194, RUSTSEC-2026-0195) against `quick-xml 0.37.5`, pulled in via: ``` quick-xml 0.37.5 <- tauri-winrt-notification 0.7.2 <- notify-rust 4.18.0 <- tauri-plugin-notification <- driven-app ``` **No `[patch.crates-io]` override was needed.** `tauri-winrt-notification 0.7.3` was published to crates.io on 2026-07-02 and drops the quick-xml dependency entirely (upstream: tauri-apps/winrt-notification#53, "Drop quick-xml dependency"). 0.7.3 is semver-compatible with notify-rust's existing `^0.7` requirement, so this is a plain `cargo update -p tauri-winrt-notification` lockfile bump - no `[patch.crates-io]` block, no git-source pin, no code change. (The issue was filed assuming 0.7.2 was notify-rust's latest available bump target and that a semver-major jump to 0.8.x, or an upstream notify-rust release, would be required - that's no longer the case now that 0.7.3 exists.) The other vulnerable copy noted in the issue (`quick-xml 0.39.4 <- plist 1.9.0 <- tauri-utils`) was already resolved on `main` prior to this PR via a routine dependabot bump to `plist 1.10.0` (quick-xml `^0.41`). ## cargo tree -i quick-xml **Before:** ``` quick-xml v0.37.5 └── tauri-winrt-notification v0.7.2 └── notify-rust v4.18.0 └── tauri-plugin-notification v2.3.3 └── driven-app v2.0.1 quick-xml v0.41.0 └── plist v1.10.0 └── ... (tauri-utils, already fixed pre-PR) ``` **After:** ``` quick-xml v0.41.0 └── plist v1.10.0 └── ... (tauri-utils) ``` The vulnerable `quick-xml 0.37.5` copy is gone from the tree entirely; only the already-fixed `quick-xml 0.41.0` (>= the 0.41.0 threshold both advisories are fixed in) remains. ## Changes - `Cargo.lock`: `tauri-winrt-notification` 0.7.2 -> 0.7.3 (drops its `quick-xml` dependency; `Cargo.toml` is unchanged). - `deny.toml`: remove the now-unused `RUSTSEC-2026-0194` / `RUSTSEC-2026-0195` ignore entries and their justification comment. ## Verification - `cargo deny check`: advisories ok, bans ok, licenses ok, sources ok. - `cargo check --workspace`: green (covers the Windows-only `tauri-winrt-notification` notification path on this Windows host). - `cargo test -p driven-app --lib`: 228 passed, 0 failed. ## Test plan - [x] `cargo tree -i quick-xml` shows no `quick-xml < 0.41.0` in the tree - [x] `cargo deny check` is green with the two RUSTSEC ignores removed - [x] `cargo check --workspace` compiles clean - [x] `cargo test -p driven-app --lib` passes Closes #89 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01QZQVP2tUuTLh8oL31D8heC Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent b9ef6ed commit 232fd8f

2 files changed

Lines changed: 3 additions & 34 deletions

File tree

Cargo.lock

Lines changed: 3 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deny.toml

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,6 @@ ignore = [
3232
"RUSTSEC-2025-0081",
3333
"RUSTSEC-2025-0098",
3434
"RUSTSEC-2025-0100",
35-
# quick-xml DoS advisories, both fixed in quick-xml >=0.41.0:
36-
# RUSTSEC-2026-0194 - quadratic run time when checking a start tag for
37-
# duplicate attribute names.
38-
# RUSTSEC-2026-0195 - unbounded namespace-declaration allocation in
39-
# `NsReader` enables a memory-exhaustion denial of service.
40-
# We carry two vulnerable copies, each transitively pinned via an
41-
# intermediate that is ALREADY at its latest published crates.io version and
42-
# has not yet bumped its quick-xml requirement to >=0.41:
43-
# quick-xml 0.37.5 <- tauri-winrt-notification 0.7.2 <- notify-rust
44-
# <- tauri-plugin-notification <- driven-app
45-
# (The second vulnerable copy, via plist <- tauri-utils, was resolved
46-
# 2026-07-19: plist 1.10.0 requires quick-xml ^0.41. The winrt chain is
47-
# still pinned: tauri-winrt-notification 0.8.x dropped quick-xml entirely,
48-
# but notify-rust 4.18 still requires ^0.7, so notify-rust must move.)
49-
# No bump path exists at our layer: quick-xml >=0.41 crosses 0.x incompat
50-
# boundaries upstream, so notify-rust must move first.
51-
# Exposure is low - these paths only parse local / OS-generated XML (Windows
52-
# toast notifications, macOS plists), never untrusted network input.
53-
# Added 2026-07-03; remove when #89 closes.
54-
"RUSTSEC-2026-0194",
55-
"RUSTSEC-2026-0195",
5635
]
5736

5837
[licenses]

0 commit comments

Comments
 (0)