Simpl-Resultat/.cargo/audit.toml
le king fu 2d4caecae8
All checks were successful
PR Check — Rust / rust (pull_request) Successful in 9m23s
fix(deps): resolve the quick-xml advisories, unyank deep-link and spin
The removal trigger #312 was written for had already fired — I filed the issue
without checking whether a newer plist existed. plist 1.10.0 ships quick-xml
0.41.0, which carries the fix, within tauri's existing bound:

    cargo update -p plist -> plist 1.8.0 -> 1.10.0
                             quick-xml 0.38.4 -> 0.41.0

So RUSTSEC-2026-0194 and -0195 are resolved rather than accepted, and leave
.cargo/audit.toml the day they entered it. rsa is now the only entry, and the
guard loops on that crate alone; its rationale comment is re-pointed
accordingly, since it was written entirely around quick-xml/plist.

Also bumps the two yanked crates (#313). tauri-plugin-deep-link 2.4.8 -> 2.4.9:
upstream's 2.4.9 is a single commit, "Fix broken iOS custom URL schemes", so
the defect behind the yank is iOS-only and never reached this desktop app —
v0.14.0 shipping 2.4.8 was not a user-facing problem, which is why neither
Security nor Fixed applies to it in the changelog. spin 0.9.8 -> 0.9.9; every
0.9.x up to 0.9.8 is yanked, which reads as a bulk yank rather than a defect.

The #310 changelog bullet is amended rather than contradicted: it sits in the
same unreleased section and would otherwise ship two opposing claims in the
same release notes. Two of its statements were wrong. It said three advisories
remained (now one), and it said tar sits on "real code paths in the shipped
app" — tar is compiled, but its vulnerable extraction path is only reached by
the AppImage and macOS installers this project does not bundle. The
rustls-webpki half stands: TLS runs on every update check.

ADR 0018's decision is untouched; an amendment header marks the passages that
are now historical, including the "override is impossible" alternative, which
plist 1.10.0 made false the same day.

cargo audit from the repo root: 0 vulnerabilities, warnings 23 -> 21 (the two
yanked ones). From src-tauri/ it reports 1 — that is the cwd sensitivity of
.cargo/audit.toml, not a regression. Guard: 2 checks + canary, exit 0.
cargo check + cargo test green (106 tests). Lock diff: 4 packages, 666 before
and after.

Resolves #312
Resolves #313

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 11:51:46 -04:00

53 lines
2.6 KiB
TOML

# cargo-audit configuration — accepted advisories (#310).
#
# Every ID listed here is suppressed on EVERY `cargo audit` run, including the
# daily blocking gate in .forgejo/workflows/audit.yml. So a green audit means
# "no advisory outside this list", not "no advisory at all". See
# docs/adr/0018-suppression-advisories-non-atteignables.md.
#
# Two rules govern the list:
#
# 1. An advisory may only be listed if its crate is absent from the
# dependency graph of EVERY shipped target (Windows and Linux), or if no
# fix has been published at all. A reachable advisory with an available
# fix gets fixed, never suppressed.
#
# 2. Entries are keyed by advisory ID, never by crate. A new advisory filed
# against a crate already listed here re-reds the gate on purpose — each
# one is reviewed on its own merits. Widening an entry to a whole crate
# would defeat the gate.
#
# check-rust.yml carries a guard that re-proves rule 1 on every PR touching
# src-tauri/ or this file. ADDING AN ENTRY HERE REQUIRES ADDING ITS CRATE TO
# THAT GUARD'S CRATE LIST — otherwise the new entry gets no anti-rot coverage.
#
# To re-verify an entry (or before removing one), run from the repo root:
#
# cargo tree --manifest-path src-tauri/Cargo.toml -i <crate> --target x86_64-unknown-linux-gnu
# cargo tree --manifest-path src-tauri/Cargo.toml -i <crate> --target x86_64-pc-windows-msvc
#
# Empty output on both targets means the entry is still justified. Any output
# means it is not: drop the entry and fix the advisory for real.
# The quick-xml pair (RUSTSEC-2026-0194 / -0195) used to live here and was
# removed on 2026-07-27 by #312: plist 1.10.0 ships quick-xml 0.41.0, which
# carries the fix, so the advisories were resolved rather than accepted. That is
# the intended lifecycle of an entry in this file — it leaves when a fix becomes
# reachable, not when someone remembers to look.
[advisories]
ignore = [
# rsa 0.9.10 — RUSTSEC-2023-0071 (Marvin attack: potential key recovery
# through timing side channels), 5.9 medium.
#
# Qualifies under both halves of rule 1. It has no fix at all — the
# advisory's patched list is empty, which is why suppression is the only
# option available. And it is unreachable: its sole parent in the lockfile
# is sqlx-mysql, an artifact of sqlx's multi-backend graph, while this
# project talks to SQLite through tauri-plugin-sql. `cargo tree -i rsa
# --target all` returns nothing at all.
#
# Removal trigger: a fixed rsa release, or sqlx dropping the crate from the
# graph.
"RUSTSEC-2023-0071",
]