fix(security): refresh dependencies and slim published package - #59
Merged
Conversation
Refresh vulnerable transitive dependencies, harden AWS command validation, and keep build-only tooling out of the published runtime surface.
Parse quoted and escaped argv values without rejecting safe dollar signs, backslashes, or tab separators.
Use a schema-54-compatible CDK CLI for the refreshed fixture and keep the image's dockerode runtime aligned with the package dependency.
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
dockerodeto 5.0.1 andxmcpto 0.6.13, closing all 95 currently open Dependabot alerts.eval("require")withcreateRequire, hardens AWS CLI input validation, refreshes the CDK fixture, and adds ongoing Dependabot/audit controls.Incorporates and supersedes #7 — thanks @remotesynth.
Alerts closed
Critical alerts are listed first. Counts reflect the 95 open Dependabot alerts before this change.
Runtime dependency tree
protobufjs@protobufjs/utf8@grpc/grpc-jstar-fshono@hono/node-serverexpress-rate-limitip-addresspath-to-regexpfast-uriqsbody-parserajvjs-yamlpicomatchuuidThis includes Critical CVE-2026-41242 in
protobufjs. Theip-addressresolution is required because the upstream exact 10.1.0 pin is vulnerable. The test-gated@hono/node-server2.x resolution held through build, type-check, protocol, and clean-room runtime tests, so GHSA-frvp-7c67-39w9 is fixed rather than dismissed.Development dependency tree
handlebarsundiciwsglobminimatchbrace-expansion@babel/coreesbuildThis includes Critical CVE-2026-33937 in
handlebars.CDK fixture
aws-cdk-libbrace-expansionfast-uriPublished package surface
xmcpdeclares its rspack/TypeScript build toolchain as runtime dependencies, even though the generated stdio server is bundled.xmcp,posthog-node, andzodare now development-only; the published package explicitly retainsdockerode,ajv, andajv-formatsas runtime dependencies.dist/*.js: no additional package requires found;dockeroderemains intentionally indirect throughcreateRequiredocker-modembundle marker count: 0; bundle sizes remained stable (stdio 363 KiB, chunks approximately 157–200 KiB)Clean-room verification used
npm pack, installed the tarball with npm in a fresh temporary directory, ran CLI help, and drove the installed stdio server with newline-delimited JSON-RPC throughinitialize,notifications/initialized,tools/list(14 tools), and LocalStack management start/status/stop. There were noMODULE_NOT_FOUNDerrors, and the management calls prove the external dockerode runtime path works.Socket.dev scans the published npm artifact, so its dashboard will update only after the next release. No npm publish or package-version bump is included here.
Compatibility review
uuidand a higher Node.js floor; this package already requires Node >=20. Version 5.0.1 contains dependency-only maintenance updates. The container list/inspect/start/stop/remove, image pull, exec, event stream, log, and modem demux APIs used here are unchanged.path.PlatformPath; the equivalent stable return type is now inferred fromtypeof path.posix.