Skip to content

Fix Supply Chain CI: ignore unreachable quick-xml DoS advisories - #39

Merged
caesay merged 1 commit into
masterfrom
claude/supply-chain-job-failures-nrd1pj
Jul 4, 2026
Merged

Fix Supply Chain CI: ignore unreachable quick-xml DoS advisories#39
caesay merged 1 commit into
masterfrom
claude/supply-chain-job-failures-nrd1pj

Conversation

@caesay

@caesay caesay commented Jul 4, 2026

Copy link
Copy Markdown
Member

Why the Supply Chain job is failing

The Supply Chain job runs cargo deny check advisories, which started failing on newly published advisories against quick-xml < 0.41.0:

  • RUSTSEC-2026-0194 — quadratic run time when checking a start tag for duplicate attribute names (CPU-exhaustion DoS).
  • RUSTSEC-2026-0195 — unbounded namespace-declaration allocation in NsReader (memory-exhaustion DoS). This one landed in the advisory DB after the last CI run, so it only surfaced once 0194 was addressed.

Both fire on two transitive copies of quick-xml in the tree: 0.39.4 and 0.30.0.

Why an upgrade isn't possible

quick-xml >= 0.41.0 fixes both, but it can't be pulled in:

quick-xml v0.39.4
└── wayland-scanner v0.31.10  (requires quick-xml = "^0.39", excludes 0.41)
    └── ... winit v0.30.13 → xdialog

wayland-scanner 0.31.10 pins quick-xml = "^0.39", and the whole wayland stack is pinned by winit 0.30.13. Bumping quick-xml would require replacing the entire winit-pinned wayland stack.

Why it's safe to ignore

Both advisories only affect parsing of untrusted XML. In this crate, quick-xml is only reached on build-time paths over trusted, crate-bundled input:

  • wayland-scanner (proc-macro) generates code from the bundled Wayland protocol XML at build time.
  • xcb — a dev-only build-dependency via xcap — parses the X11 protocol XML at build time.

No untrusted runtime XML is ever handed to quick-xml, so neither DoS is reachable.

Change

Add both advisory IDs to the ignore list in deny.toml with a justification comment, consistent with the existing entries. Verified locally that cargo deny --all-features check advisories, licenses, bans, and sources all pass.

🤖 Generated with Claude Code


Generated by Claude Code

The Supply Chain CI job started failing on RUSTSEC-2026-0194 and
RUSTSEC-2026-0195, two DoS advisories against quick-xml < 0.41.0
(quadratic start-tag attribute check and unbounded NsReader namespace
allocation).

Both only affect parsing of untrusted XML. In this tree quick-xml is
pulled in on two build-time, trusted-input paths only:

  - wayland-scanner (^0.39, pinned via winit 0.30.x) generates code from
    the crate-bundled Wayland protocol XML at build time.
  - xcb (a dev-only build-dependency via xcap) parses the X11 protocol
    XML at build time.

Neither parses untrusted runtime input, so the advisories are not
reachable. Upgrading quick-xml to >= 0.41.0 is not possible without
replacing the entire winit-pinned wayland stack, so the advisories are
ignored with justification, consistent with the existing entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014JQhuuZGmCaHNzMRwHnBQG
@caesay
caesay merged commit fe883e9 into master Jul 4, 2026
28 checks passed
@caesay
caesay deleted the claude/supply-chain-job-failures-nrd1pj branch July 4, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant