registry  /  @gbrandtio/rw-git-mcp  /  3.0.9

@gbrandtio/rw-git-mcp@3.0.9

Model Context Protocol (MCP) server for rw-git

AI Security Review

scanned 10d ago · by lpm-firewall-ai

The package uses install-time network retrieval of an executable and later proxies CLI execution to that file. No confirmed malicious payload is present in inspected source, but the unverified remote binary install path is a real supply-chain risk.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; runtime CLI runs rw-git-mcp
Impact
Could execute whatever binary is served by the GitHub release URL for the package version; inspected package source does not show credential theft or destructive behavior.
Mechanism
unverified install-time native binary download and CLI spawn
Attack narrative
On install, postinstall selects a platform artifact name, downloads it from GitHub Releases, writes it into bin, and marks it executable. The CLI then spawns that downloaded file. The included rw-git-mcp-bin is actually a GitHub 404 HTML document, suggesting packaging or release mismatch, but source inspection did not identify credential theft, persistence, destructive behavior, or unconsented AI-agent configuration writes.
Rationale
This is suspicious because it installs and executes an unauthenticated remote binary during npm install, and the packaged executable is not a valid binary. The behavior is package-aligned for an MCP wrapper and no concrete malicious code was found, so warn rather than block.
Evidence
package.jsoninstall.jsbin/cli.jsbin/rw-git-mcp-binskills/rw-git-mcp-installation/SKILL.mdREADME.mdbin/rw-git-mcp-bin.exe.agents/skills/rw-git-mcp
Network endpoints2
github.com/gbrandtio/rw-git/releases/download/v3.0.9/{artifactName}github.com/gbrandtio/rw-git.git

Decision evidence

public snapshot
AI called this Suspicious at 82.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • package.json runs postinstall: node install.js
  • install.js downloads platform executable from GitHub Releases at install time without checksum/signature verification
  • install.js writes bin/rw-git-mcp-bin and chmods it executable
  • bin/cli.js spawns bin/rw-git-mcp-bin with user args
  • Bundled bin/rw-git-mcp-bin is a GitHub 404 HTML page, not a native executable
Evidence against
  • No credential/env harvesting found in JS source
  • No exfiltration endpoint beyond package-aligned GitHub release download
  • install-skills writes .agents/skills only when user explicitly invokes that command
  • Bundled skills are reporting/installation prompts aligned with the package README
  • No install-time AI-agent config mutation found
Behavioral surface
Source
ChildProcessFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 2 file(s), 3.54 KB of source, external domains: github.com

Source & flagged code

2 flagged · loading source
package.jsonView file
scripts.postinstall = node install.js
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node install.js
Medium
Ambiguous Install Lifecycle Script

Install-time lifecycle script is not statically allowlisted and needs review.

package.jsonView on unpkg

Findings

1 High2 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
LowScripts Present
LowFilesystem
LowUrl Strings