chore(deps): nightly audit 2026-08-05 - #365
Draft
po4yka wants to merge 3 commits into
Draft
Conversation
Test-only crate (golden-test-support diffing helper). No API surface change; patch release only.
Build-time-only preview-rendering plugin (ee.schimke.composeai.preview). No production/runtime dependency.
testing/socket-bind-probe hardcoded CMake 3.22.1, drifted from the ripdpi.nativeCmakeVersion=3.31.6 pin every other native module reads from gradle.properties via ripdpi.android.rust-native. Read the same property instead of the stale literal.
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.
Task
Nightly dependency and security audit (scheduled), not tied to a
docs/tasks/issues/entry.Summary
Automated nightly sweep of the Rust Cargo workspace (
native/rust/, 116 crates) and theGradle/Kotlin frontend (13 modules +
build-logic). Only SAFE-bucket changes are applied here;everything else is reported below for a human decision.
Applied
Rust
similar:3.1.1→3.1.2(patch). Used only bygolden-test-support(test-only diffinghelper for golden fixtures) — no production code path. Verified with
cargo check --locked -p golden-test-supportand a full-workspacecargo metadata --locked. Applied as a hand-scopedCargo.lockedit (notcargo update)because the resolver's own
--precisepass additionally shifted an unrelatedsynduplicateedge (
derive-deftly-macros'ssyn 3.0.3→syn 2.0.119); that incidental churn was revertedto keep this diff to exactly the intended crate.
Gradle
compose-preview-plugin(ee.schimke.composeai.preview):0.19.25→0.19.34(patch, 9releases behind). Build-time-only Compose preview renderer, zero runtime/production impact.
testing/socket-bind-probe/build.gradle.kts: hardcoded CMake3.22.1→ reads the sharedripdpi.nativeCmakeVersionGradle property (3.31.6ingradle.properties), same as everyother native module via
ripdpi.android.rust-native. This is a version-alignment fix for across-module divergence found during the audit (see Conflicts), not a version-catalog bump.
Security
cargo audit --jsonreports exactly the four items alreadytracked and waived in
native/rust/deny.toml/native/rust/advisory-waivers.toml, noneexpired (today: 2026-08-05):
RUSTSEC-2023-0071(Marvin Attack,rsa0.9.10 / 0.10.0-rc.18, via Arti and russh) —waived, expires 2026-11-02, no safe upgrade path on either dependency chain.
RUSTSEC-2025-0069(unmaintaineddaemonize0.5.0) — waived, expires 2026-10-11.RUSTSEC-2025-0141(unmaintainedbincode2.0.1, transitive via Arti) — waived, expires2026-11-02.
RUSTSEC-2024-0436(unmaintainedpaste1.0.15, transitive via netlink-packet-core) —waived, expires 2026-10-11.
cargo deny --locked checkpasses clean (advisories ok, bans ok, licenses ok, sources ok).The only output is pre-existing
warn-level noise already tolerated bydeny.toml: duplicateRustCrypto crate versions (from
russh's exact-pinned RC-crypto graph coexisting with theworkspace's stable crypto versions) and internal path-crate wildcard-dependency warnings — no
change from baseline.
Needs review
base64:0.23.0→0.23.1(patch on paper, but withheld).base64is a directdependency of five networking/protocol crates (
ripdpi-vless,ripdpi-shadowsocks,ripdpi-ssh,ripdpi-warp-core,ripdpi-naiveproxy) where it encodes handshake/credentialdata on the wire — falls under the "touching networking" carve-out regardless of semver level.
compose-preview.mddoc drift (not a dependency change, flagging for awareness): the rulefile at
.claude/rules/compose-preview.mddocuments the plugin as pinned at0.16.59, whichwas already stale against the pre-audit catalog value (
0.19.25) before this PR's bump to0.19.34. Out of scope for a dependency-audit diff; a maintainer should refresh the docseparately.
Major
arti-client:0.44.0→0.45.0. 0.x release, so a minor-version bump is a semverbreak by Cargo's own convention; requires a
Cargo.tomlrange edit (current pin"0.44.0"iscaret-range, does not admit
0.45). Tor client crate — networking and crypto surface.tor-rtcompat:0.44.0→0.45.0. Companion crate toarti-client, released inlockstep; same breaking-bump situation and the same networking/crypto sensitivity.
every other entry (54
[versions]keys checked against live Maven Central / Google Maven /Gradle Plugin Portal metadata; only
compose-preview-pluginwas behind, and only by patches).Conflicts
testing/socket-bind-probe/build.gradle.ktshardcodedexternalNativeBuild.cmake.version = "3.22.1", diverging from theripdpi.nativeCmakeVersionpin (
3.31.6) that every other native-build module reads fromgradle.properties. Now readsthe same property.
live outside
libs.versions.toml's[versions]table — the ktlint-core pin(
ripdpi.android.ktlint.gradle.kts,1.8.0) and thefoojay-resolver-conventionpluginversion in
settings.gradle.kts(1.0.0) — but both already match their respective latestreleases, so there's nothing to reconcile today; noting them so a future bump doesn't get
missed since neither has a catalog anchor.
build-logic's convention plugins source every version from the rootgradle/libs.versions.tomlcatalog directly (
versionCatalogs { create("libs") { from(files("../gradle/libs.versions.toml")) } })— there is no second catalog for it to diverge from.
Test plan
cargo audit --json— 0 new vulnerabilities; all 4 findings match existing waivers.cargo deny --locked check— passes (advisories ok, bans ok, licenses ok, sources ok).cargo metadata --locked --format-version=1— full 116-crate workspace lockfile resolvescleanly after the
similarbump.cargo check --locked -p golden-test-support— the one crate touched by thesimilarbumpbuilds clean.
./gradlew help(online, no--offline) —build-logic:conventioncompiles, and every Gradlemodule including
:testing:socket-bind-probereaches project configuration successfully (thecompose-preview-pluginbump and the CMake-property edit both evaluate without error). Therun then fails on
SDK location not found— this sandboxed audit environment has no AndroidSDK installed, so
assembleDebug/testDebugUnitTest/staticAnalysiscould not be runhere; CI should re-verify those gates.
cargo outdated— that tool's temp-workspace copy has a pre-existing bug with this repo's[patch.crates-io] boring-sys = { path = "vendor/boring-sys" }override (fails withfailed to read .../vendor/boring-sys/Cargo.tomleven with--exclude/--ignore-external-rel)and could not be worked around in this run.
Checklist
timeout-minutesadded to any new CI job — N/A, no CI jobs addedthe existing shared value, no ABI/toolchain change
touched
Generated by Claude Code