Repository navigation
Release 3.8.6: six security advisories - #91
Merged
Merged
Conversation
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.
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.
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.
Security release 3.8.6: the fixes of 4.0.0-beta.2, for everyone on npm.
on-errorhook logs without a shell, to~/.ssh-manager/errors.log.restrictedmode checks every command on the line.cwdis quoted.ssh_db_queryruns in a read-only transaction; a MongoDB query must be a filter document.known_hosts(unknown host trusted on first use, changed key refused).ssh_deployandssh_backup_schedulequote every value; a cron schedule must be a schedule.~/.ssh-manager/(Hooks config and log file live inside the installed package: lost on upgrade, log readable by all users #87); the package stops shipping a development.hooks-config.json.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.