Complete third-party license docs + dependency security hardening - #2
Merged
Conversation
Fix two high-severity quick-xml advisories (RUSTSEC-2026-0194/-0195, XML-parsing DoS) and an anyhow unsoundness (RUSTSEC-2026-0190) by bumping plist -> quick-xml 0.41 and anyhow -> 1.0.103. Refresh the rest of the tree to latest semver-compatible versions (Tauri 2.11.5). cargo audit now reports zero vulnerabilities. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move to Rust edition 2024 (rust-version 1.85). Edition 2024 marks std::env::set_var as unsafe, so the WEBKIT_DISABLE_DMABUF_RENDERER setup in main.rs is wrapped in an unsafe block with a SAFETY note (it runs single-threaded at startup, before any concurrent env access). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the disabled Content Security Policy (csp: null) with a strict policy: script-src 'self', styles/images limited to self plus data:/blob:, and no object/base/frame embedding. The frontend loads only local scripts and styles, so no remote origins are required. Add src-tauri/deny.toml (cargo-deny) scoped to the shipped Windows target as the blocking supply-chain gate, plus a GitHub Actions workflow that runs cargo-deny (blocking) and a non-blocking full-tree cargo audit on dependency changes, on PRs, and weekly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fill in the previously TODO Rust crate license section: generate THIRD_PARTY_RUST.md with cargo-about (generator config committed as about.toml/about.hbs), summarize the 408-crate license breakdown (all permissive: MIT, Unicode-3.0, Apache-2.0, MPL-2.0, BSD-3-Clause, Zlib), and document the dependency-security posture in a new section 7. Correct the inaccurate 'ring' reference (no TLS/networking stack is pulled in). Align stale 0.0.1 references with the 1.0.0 release in README and package-lock.json. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the third-party license documentation (the previously
TO-DO§4 ofTHIRD_PARTY_LICENSES.md) and hardens the project's dependency-security posture.The only runtime-behavior change is a newly-enabled Content Security Policy.
Changes (by commit)
chore(deps)— RUSTSEC fixes + updatesquick-xmladvisories (RUSTSEC-2026-0194 / -0195,XML-parsing DoS) and an
anyhowunsoundness (RUSTSEC-2026-0190) viaplist → quick-xml 0.41andanyhow → 1.0.103.cargo updateto latest semver-compatible versions (Tauri 2.11.5).cargo audit: 0 vulnerabilities.build(rust)— edition 2024rust-version→ 1.85.std::env::set_varinmain.rsis wrapped inunsafe {}with a SAFETY note (edition-2024 requirement;it runs single-threaded at startup).
feat(security)— CSP + auditingcsp: nullwith a strict Content Security Policy (script-src 'self';styles/images limited to self +
data:/blob:; no object/base/frame embedding).All frontend scripts and styles are local, so no remote origins are needed.
src-tauri/deny.toml(cargo-deny, scoped to the shipped Windows target as ablocking supply-chain gate) and
.github/workflows/security-audit.ymlrunningcargo-deny (blocking) + a non-blocking full-tree cargo audit on dep changes, PRs,
and weekly.
docs— license attribution + version driftTHIRD_PARTY_RUST.md(cargo-about; generator configcommitted as
about.toml/about.hbs), a 408-crate license summary (allpermissive: MIT, Unicode-3.0, Apache-2.0, MPL-2.0, BSD-3-Clause, Zlib), and a new
§7 documenting the security posture. Corrects the inaccurate
ringreference(no TLS/networking stack is pulled in).
0.0.1references with the1.0.0release inREADME.mdandpackage-lock.json.Security result
items are 5
unic-*unmaintained warnings (no known vulnerability, upstream-onlyvia
urlpatternintauri-utils).the Windows binary and are therefore out of the gate's scope (still visible via the
non-blocking full-tree
cargo audit).These could not be compiled in the authoring environment (no WebKitGTK libs to
build the Tauri Linux target). Please run
npm run buildon Windows and smoke-test:relies on
blob:URLs, which the policy allows).🤖 Generated with Claude Code