Skip to content

Release 3.8.6: six security advisories - #91

Merged
bvisible merged 3 commits into
mainfrom
release/3.8.6
Oct 8, 2026
Merged

bvisible merged 3 commits into
mainfrom
release/3.8.6

Conversation

@bvisible

@bvisible bvisible commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Security release 3.8.6: the fixes of 4.0.0-beta.2, for everyone on npm.

Verified locally: full suite, typecheck, lint, knip, validate.sh; real upgrade 3.8.5 (registry) → 3.8.6 → 3.8.5, 8/8, all 37 tool schemas unchanged; the database fixes against MariaDB 11, PostgreSQL 16 and MongoDB 5. Each fix has a test that fails without it. Details in the CHANGELOG.

The same fixes as 4.0.0-beta.2, for everyone on npm:

- GHSA-759m-wfpq-xmx3: hook values never become shell code; the default
  on-error hook logs without a shell, to ~/.ssh-manager/errors.log. Hook
  settings, aliases, the profile, the log and the history move out of the
  installed package (issue #87), and the package stops shipping the
  development .hooks-config.json that turned Frappe hooks on for everyone.
- GHSA-rfxw-26h6-7w42: restricted mode checks every command on the line,
  and refuses command substitution and writes to files.
- GHSA-37fv-fcpc-j236: cwd is quoted in ssh_execute, ssh_execute_group,
  ssh_execute_sudo and the SSH layer.
- GHSA-9w6j-vg8f-hp8g, GHSA-q37w-vhpx-q5q9: ssh_db_query is one SELECT
  in a read-only transaction; a MongoDB query must be a filter document.
- GHSA-cwg3-pfmm-w8rm: the host key is compared with known_hosts; an
  unknown host is trusted on first use, a changed key is refused.
- ssh_deploy and ssh_backup_schedule quote every value, and a cron
  schedule must be a schedule (the gap left by GHSA-qwwm-vrm9-4mw8).

@modelcontextprotocol/sdk 1.32.1 and npm audit fix; the runtime audit is
clean. The files these fixes touch were identical on main and on the V4
branch, so the code and its tests are the V4 ones; index.js and
ssh-manager.js carry the same changes by hand.
Comment thread tests/test-hooks.js Fixed
Comment thread tests/test-hooks.js Fixed
CodeQL js/file-system-race: the test checked for .hooks-config.json, then
wrote it. Reading it and handling ENOENT keeps the same backup without the
gap between the check and the use.
…exists

CodeQL still saw a check (existsSync) before a later write of the same
file. Reading it and comparing with the backup asserts the same thing.
@bvisible
bvisible merged commit cf0f612 into main Oct 8, 2026
8 checks passed
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.

2 participants