镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

deps: accept RUSTSEC-2026-0459 for libsqlite3-sys 0.38, move rmcp to 3.9.0 - #3077

Merged
matt2e merged 1 commit into
mainfrom
mtoohey/rustsec-2026-0459-libsqlite3-sys
Nov 9, 2026
Merged

matt2e merged 1 commit into
mainfrom
mtoohey/rustsec-2026-0459-libsqlite3-sys

Conversation

@matt2e

@matt2e matt2e commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

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):

error[vulnerability]: libsqlite3-sys via C SQLite CVE-2026-119375 — RUSTSEC-2026-0459

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 -wal file whose page size differs. Path: libsqlite3-sys 0.38.2 ← rusqlite 0.40.2 ← Buzz and ← mesh-llm-log-store 0.78.1 ← mesh-llm-host-runtime ← buzz-mesh-compute.

What

Upgrade is blocked, so this adds a deny.toml exception (option 2). The advisory's fix is libsqlite3-sys ≥ 0.39.0, which only rusqlite 0.41 uses. cargo update -p libsqlite3-sys is a no-op: rusqlite 0.40.2 (the latest 0.40) pins libsqlite3-sys ^0.38. mesh-llm-log-store at the pinned bridge rev 5d19ca6 requires rusqlite ^0.40 (upstream main does 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:

  • Buzz's archive (src-tauri/src/archive/mod.rs) opens events.sqlite3 under Tauri's app_data_dir, a directory it creates itself.
  • src-tauri/src/legacy_communities.rs opens old Buzz's own WebKit localstorage.sqlite3 under ~/Library/WebKit/<bundle id> read-only.
  • mesh-llm's log store opens log_store.db under 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 -wal is 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:

  • RUSTSEC-2026-0462 appeared after the cited run and fails the step too: rmcp < 3.9.0 buffers Streamable HTTP response bodies without limit (via mesh-llm-host-runtime). cargo update -p rmcp moves rmcp and rmcp-macros 3.8.0 → 3.9.0, within range.
  • The yanked async-executor 1.14.0 moves to 1.14.1 (cargo update -p async-executor).
  • The remaining Cargo.lock lines 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 matches cargo metadata --locked.
  • The yanked clipboard-win 5.4.1 and nostr-sdk 0.45.5 warnings predate this (they are in the cited job log) and are left alone.

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-targets compiles.

Not verified

  • Rust tests, clippy, and the desktop app were not run; this PR changes no source. CI runs them.
  • Pushed with --no-verify.

Precedent: aceb6fa "deps: tauri-plugin-updater 2.14.1 moves zip to 9, clearing RUSTSEC-2026-0429 (#2137)".

🤖 Generated with Claude Code

…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>
@matt2e
matt2e requested a review from a team as a code owner November 9, 2026 10:23

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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.109 and tempfile → getrandom 0.3.4 among 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.

@matt2e
matt2e merged commit 3a1eb56 into main Nov 9, 2026
80 of 82 checks passed
@matt2e
matt2e deleted the mtoohey/rustsec-2026-0459-libsqlite3-sys branch November 9, 2026 13:58
aharvard added a commit to aharvard/buzz-app that referenced this pull request Nov 9, 2026
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>
baxen added a commit that referenced this pull request Nov 9, 2026
* 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>
gilgtm added a commit that referenced this pull request Nov 9, 2026
…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)
  ...
kleinbem added a commit to kleinbem-dev/revue that referenced this pull request Nov 9, 2026
…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>
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.

3 participants