Repository navigation
fix(security): Node 24.22.1 for managed agent runtime and toolchain; pin macOS minimum - #244
Merged
Merged
Conversation
…pin macOS minimum October 2026 advisories. - The Buzz-private Node runtime for agent adapters moves from v24.18.0 to v24.22.1 (Brotli decoder RCE CVE-2026-111497, TLS hostname checks, randomUUID snapshot entropy, eMudhra CA removal). All six SHA-256 pins come from the release's SHASUMS256.txt; they match the clear-signed SHASUMS256.txt.asc body and the hashes published in the nodejs.org release post on GitHub (linux-x64 also matches Hermit's manifest). - managed_node.rs now reads the version from managed_node_paths.rs, so the install path, download URL and readiness probe share one constant. A test ties each artifact filename to that constant. Existing installs rebuild: the new version directory is missing, the runtime is not ready, managed adapter shims count as orphaned, and the next install downloads v24.22.1. - CI setup-node pins (desktop CI, release, Windows canary, upstream sync rehearsal) and the Hermit node package move to 24.22.1. - The feature-flag fixture lockfile resolves rustls-webpki 0.103.16 (RUSTSEC-2026-0382); it was the last lockfile on 0.103.15. The resolve also picks up the ed25519-dalek graph the path dependency already needs, at the versions in the root Cargo.lock. - tauri.conf.json states bundle.macOS.minimumSystemVersion 10.15, the value the release config and MACOSX_DEPLOYMENT_TARGET already use. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Ross Hartmann <rosshartmann@RosssMacStudio.attlocal.net>
Windows runner admission only runs a pull request whose reusable workflows match main byte for byte, so changing _ci-desktop.yml here stops the Windows desktop build from checking the managed Node change. The 24.22.1 pin for _ci-desktop.yml lands in a follow-up PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Ross Hartmann <rosshartmann@RosssMacStudio.attlocal.net>
RossHartmann
added a commit
that referenced
this pull request
Oct 22, 2026
The Windows desktop build's setup-node pin moves from 24.14.1 to 24.22.1, matching release.yml, windows-canary.yml, upstream-sync-rehearsal.yml and Hermit since #244. Signed-off-by: Ross Hartmann <rosshartmann@RosssMacStudio.attlocal.net> Co-authored-by: Ross Hartmann <rosshartmann@RosssMacStudio.attlocal.net> Co-authored-by: Claude Opus 5.5 <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
Fixes for the October 2026 security advisories in this repo.
v24.18.0→v24.22.1(Brotli decoder RCE CVE-2026-111497, TLS hostname bypasses, randomUUID snapshot entropy, eMudhra CA removal). All six SHA-256 pins replaced.managed_node.rsimportsBUZZ_MANAGED_NODE_VERSIONfrommanaged_node_paths.rs, so the install path, download URL and readiness probe can't drift. A new test ties each artifact filename to that constant.setup-node24.14.1 → 24.22.1 inrelease.yml,windows-canary.ymlandupstream-sync-rehearsal.yml._ci-desktop.ymlgets the same pin in a follow-up PR, because Windows runner admission refuses a PR whose reusable workflow differs from main (public_reusable_workflow_not_current, see #204), and that would skip the Windows build for this change. Hermitbin/.node-24.15.0.pkg→bin/.node-24.22.1.pkg, withnode/npm/npx/corepackrelinked.crates/buzz-feature-flags/tests/fixtures/relay-feature-selection/Cargo.lockwas still on 0.103.15 (RUSTSEC-2026-0382). It now resolves 0.103.16. The resolve also adds the ed25519-dalek graph that the path dependency already needs, at the same versions as the rootCargo.lock. The lock was stale before this change.tauri.conf.jsonnow setsbundle.macOS.minimumSystemVersion: "10.15". That is the valuebuild-release-config.mjsandMACOSX_DEPLOYMENT_TARGETalready ship, so the effective minimum does not change.Hash verification
gpgisn't installed on this Mac, so the signature onSHASUMS256.txtwas not checked. Instead the six hashes were checked against three sources:https://nodejs.org/dist/v24.22.1/SHASUMS256.txt. The body of the clear-signedSHASUMS256.txt.ascis byte-identical to it.nodejs/nodejs.orgon GitHub (apps/site/pages/en/blog/release/v24.22.1.md). All six match.cashapp/hermit-packagesnode.hcl. The linux-x64 hash matches.Existing installs
When the pinned version changes,
buzz_managed_node_bin_dir()points at a version directory that doesn't exist yet.managed_node_runtime_ready()then returns false.managed_node_orphaned()invalidates any Buzz-managed adapter shims, and the next install callsensure_managed_node_runtime_blocking(), which downloads and verifies v24.22.1. Nothing resolvesnodefrom the oldv24.18.0directory.Checks run here (no tests on this Mac)
cargo metadata --lockedpasses for the root, desktop and fixture manifests.cargo fmt --checkpasses for the desktop crate.cargo clippy --lib --tests -D warningspasses for the desktop crate.check-kiingo-fork-boundary.mjspasses: 807/807 classified, contamination 0. The new files are covered by a newretain-genericdelta.--no-verify, so the full pre-push clippy and mesh-llm lanes did not run locally. CI is the gate.managed_node_artifact_matches_pinned_versionwas written but not run (Spot only).Not in this PR
Kiingo/kiingo./etc/ssl/cert.pem: no code change; see the handoff report.🤖 Generated with Claude Code