Repository navigation
deps: accept RUSTSEC-2026-0459 for libsqlite3-sys 0.38, move rmcp to 3.9.0 - #3077
Conversation
…3.9.0 cargo-deny's "Dependency policy" step has failed on every run since 2026-11-09 09:30Z (PR #3074, run 42597212482, job 129092678543) with RUSTSEC-2026-0459 / CVE-2026-119375: libsqlite3-sys 0.38.2 bundles SQLite 3.53.2, which can return uninitialised page-cache memory when a database is opened next to a `-wal` file with a different page size. The fix is libsqlite3-sys 0.39, but rusqlite 0.40 (latest 0.40.2) pins ^0.38, mesh-llm-log-store at the pinned mesh-llm bridge rev 5d19ca6 requires rusqlite ^0.40 (upstream main too), and only one libsqlite3-sys may link sqlite3, so Buzz cannot move to rusqlite 0.41 alone. Ignore the advisory in deny.toml instead, with the exposure argument: every database Buzz or mesh-llm opens is in a per-user directory the same code created (the archive under app_data_dir, old Buzz's own WebKit localStorage opened read-only, mesh-llm's log store under its app-state root), so a less-trusted party writing a sibling `-wal` is outside the threat model. Remove the exception when mesh-llm moves to rusqlite >= 0.41. A second advisory has appeared since that run and fails the same step: RUSTSEC-2026-0462, rmcp < 3.9.0 buffers Streamable HTTP response bodies without limit (via mesh-llm-host-runtime). rmcp and rmcp-macros move to 3.9.0, within range. async-executor 1.14.0 was yanked; it moves to 1.14.1. The other Cargo.lock lines are cargo re-choosing already-locked windows-sys/windows-core versions for crates with wide ranges; the package set is unchanged. The yanked clipboard-win 5.4.1 and nostr-sdk 0.45.5 warnings predate this and stay. Verified: `cargo-deny --locked check` passes (advisories, bans, licenses, sources) and `cargo check --workspace --locked --all-targets` compiles. Not run: tests, clippy, the app. Signed-off-by: Matt Toohey <contact@matttoohey.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Star Lord’s automated source review via Wes’s account, integrating independent Rocket, Mantis and Groot reviews.
Reviewed e2b444a7579b6f2c924199520cf5b016eab6c744 against base/merge-base 58116b826171d190a7376fc57b0509c32c507dde. No blocking correctness or security findings in this two-file change.
The SQLite dependency remains affected; this is an explicit trust-boundary exception, not a patch. The reviewed database-open paths and mesh directory preparation support the stated assumption that less-trusted parties cannot supply the database/WAL pair. Read-only SQLite access does not itself mitigate this advisory. The rmcp update meets RUSTSEC-2026-0462’s patched range, and the changed lockfile edges are consistent with the reviewed registry requirements.
Two optional documentation corrections:
- In
deny.toml:32–38, describe trusted per-user storage and trusted local environment configuration rather than saying every directory was created by “the same code”: old WebKit storage and an existing standalone mesh directory can predate Buzz. - In the PR description, include
data-encoding-macro-internal → syn 1.0.109andtempfile → getrandom 0.3.4among the lockfile reselections; the remaining changes are not exclusively Windows edges.
Validation: this was source/registry/advisory review only; we ran no local builds, tests, dependency commands or app workflows. At the reviewed head, hosted CI required and Rust/tool integration passed, including dependency policy, Rust lint, and all Rust tests/doctests. Windows native validation was skipped, so Windows execution remains unverified. The description’s local cargo checks and --no-verify push are author-reported; hosted success does not establish that local hooks ran. No attachments were present in the reviewed PR description.
Picks up c202642 (block#2837), which fixes the ThreadPanel catch-up test that fails on every run of a merge with the older main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * origin/main: (155 commits) deps: accept RUSTSEC-2026-0459 for libsqlite3-sys 0.38, move rmcp to 3.9.0 (block#3077) fix(communities): accept invite links and bare hosts in Join a community (block#2412) fix(builderlab): open a remote agent's Activity on the conversation it was opened from (block#3051) refactor(builderlab): keep capabilities fresh in the session (block#3003) feat(moderation): show invite links as a QR code (block#3029) Keep Create agent's Model row readable and give Goose a Thinking row (block#2673) Join a community right after creating it in Settings (block#2991) Let new Solo chats start temporary by default (block#2874) fix(messages): fill a screen that a head of folded agent activity leaves empty (block#3037) fix(search): search saved conversations while the community is offline or connecting (block#2724) test(agents): make version-history date assertion time-zone independent (block#3010) feat(relay): gate artifact writers on NIP-AR support (block#2735) fix(channels): open the dock's community switcher from Personal space (block#2806) fix(members): keep the list's place after a member change (block#2818) fix(channels): keep a launcher's side panel open on Close all tabs (block#2803) fix(activity): show a remote agent's Buzz send as its reply (block#3025) refactor(settings): move external identity authorization to security (block#3032) test(typeahead): serve the fixture pages as a build so cold loads fit (block#2793) feat(channels): list unread top-level mentions in sidebar Activity, and count only unread mentions on the Inbox card (block#2722) fix(solo): delete a removed workspace's settings after the groups write (block#2819) ... Signed-off-by: Andrew Harvard <aharvard@squareup.com>
* origin/main: deps: accept RUSTSEC-2026-0459 for libsqlite3-sys 0.38, move rmcp to 3.9.0 (#3077) fix(communities): accept invite links and bare hosts in Join a community (#2412) fix(builderlab): open a remote agent's Activity on the conversation it was opened from (#3051) refactor(builderlab): keep capabilities fresh in the session (#3003) feat(moderation): show invite links as a QR code (#3029) Keep Create agent's Model row readable and give Goose a Thinking row (#2673) Signed-off-by: Bradley Axen <baxen@squareup.com>
…pover-card-layout-7eeda1e0 * origin/main: (128 commits) deps: accept RUSTSEC-2026-0459 for libsqlite3-sys 0.38, move rmcp to 3.9.0 (#3077) fix(communities): accept invite links and bare hosts in Join a community (#2412) fix(builderlab): open a remote agent's Activity on the conversation it was opened from (#3051) refactor(builderlab): keep capabilities fresh in the session (#3003) feat(moderation): show invite links as a QR code (#3029) Keep Create agent's Model row readable and give Goose a Thinking row (#2673) Join a community right after creating it in Settings (#2991) Let new Solo chats start temporary by default (#2874) fix(messages): fill a screen that a head of folded agent activity leaves empty (#3037) fix(search): search saved conversations while the community is offline or connecting (#2724) test(agents): make version-history date assertion time-zone independent (#3010) feat(relay): gate artifact writers on NIP-AR support (#2735) fix(channels): open the dock's community switcher from Personal space (#2806) fix(members): keep the list's place after a member change (#2818) fix(channels): keep a launcher's side panel open on Close all tabs (#2803) fix(activity): show a remote agent's Buzz send as its reply (#3025) refactor(settings): move external identity authorization to security (#3032) test(typeahead): serve the fixture pages as a build so cold loads fit (#2793) feat(channels): list unread top-level mentions in sidebar Activity, and count only unread mentions on the Inbox card (#2722) fix(solo): delete a removed workspace's settings after the groups write (#2819) ...
…s 0.39 (#47) osv-scanner fails fleet-lint on every PR since RUSTSEC-2026-0459 appeared today (it blocks #45, for example). **Why an exception and not a bump:** the newest sqlx, 0.9.0, requires `libsqlite3-sys <0.38`, and the fix is 0.39. block/buzz-app accepted the same advisory today for the same reason (block/buzz-app#3077). **Exposure:** revue opens only its own `revue.db` in its state directory (`/var/lib/revue` via systemd's `StateDirectory`, or `~/.local/share/revue`). Planting the mismatched `-wal` file the bug needs requires write access there, which already means control of the data. The exception expires 2027-02-09, like the existing one; tracking: #46. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Chores** * Added a temporary exception for the Rust dependency vulnerability advisory `RUSTSEC-2026-0459`. The scanner will ignore this advisory until 9 February 2027. The exception includes details about the affected dependency versions, database configuration, exposure conditions and tracking issue. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Why
The Dependency policy step of the "Rust and tool integration" job fails on every run since about 2026-11-09 09:30Z, independent of any PR's changes (main's run 42593548798 at 09:27Z passed; PR #3074's run 42597212482, job 129092678543, failed):
libsqlite3-sys 0.38.2 bundles SQLite 3.53.2. SQLite before 3.54.0 can return uninitialised page-cache memory when a database file is opened together with a sibling
-walfile whose page size differs. Path:libsqlite3-sys 0.38.2 ← rusqlite 0.40.2 ← Buzzand← mesh-llm-log-store 0.78.1 ← mesh-llm-host-runtime ← buzz-mesh-compute.What
Upgrade is blocked, so this adds a
deny.tomlexception (option 2). The advisory's fix is libsqlite3-sys ≥ 0.39.0, which only rusqlite 0.41 uses.cargo update -p libsqlite3-sysis a no-op: rusqlite 0.40.2 (the latest 0.40) pinslibsqlite3-sys ^0.38. mesh-llm-log-store at the pinned bridge rev5d19ca6requiresrusqlite ^0.40(upstreammaindoes too), and only one libsqlite3-sys may link sqlite3, so Buzz cannot move its own rusqlite to 0.41 without a mesh-llm bump. That is a larger change than clearing CI and is out of scope here.The exception follows the file's existing style and records why Buzz is not exposed, checked against the code:
src-tauri/src/archive/mod.rs) opensevents.sqlite3under Tauri'sapp_data_dir, a directory it creates itself.src-tauri/src/legacy_communities.rsopens old Buzz's own WebKitlocalstorage.sqlite3under~/Library/WebKit/<bundle id>read-only.log_store.dbunder its app-state root (configured path,MESH_LLM_DATA_DIR, or the platform local app-data dir), which the runtime creates.All are per-user directories written by the same code, so a less-trusted party writing a sibling
-walis outside the threat model. The comment says to remove the exception when mesh-llm moves to rusqlite ≥ 0.41.Also in this PR, because they fail or warn in the same step:
cargo update -p rmcpmoves rmcp and rmcp-macros 3.8.0 → 3.9.0, within range.cargo update -p async-executor).Cargo.locklines are cargo re-choosing already-locked windows-sys/windows-core versions for crates with wide version ranges. The package set is unchanged. Each new edge matchescargo metadata --locked.Resulting versions: libsqlite3-sys 0.38.2, rusqlite 0.40.2 (unchanged); rmcp 3.9.0; async-executor 1.14.1.
Verified
./bin/cargo-deny --locked check:advisories ok, bans ok, licenses ok, sources ok(exit 0). Before the change it failed on RUSTSEC-2026-0459 and, after the lock rewrite, RUSTSEC-2026-0462../bin/cargo check --workspace --locked --all-targetscompiles.Not verified
--no-verify.Precedent: aceb6fa "deps: tauri-plugin-updater 2.14.1 moves zip to 9, clearing RUSTSEC-2026-0429 (#2137)".
🤖 Generated with Claude Code