registry  /  @edpaget/rdm  /  0.15.0

@edpaget/rdm@0.15.0

CLI for managing project roadmaps, phases, and tasks

AI Security Review

scanned 2d ago · by lpm-firewall-ai

No confirmed malicious attack surface was established. The package is an npm wrapper that downloads and runs a platform-specific rdm release binary, which is expected for this CLI package but carries normal binary-wrapper trust risk.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; rdm command runs the installed binary
Impact
Installs executable files under the package directory and later delegates CLI arguments to that binary; no source evidence of exfiltration or unauthorized mutation.
Mechanism
platform-specific GitHub release binary download and CLI spawn
Rationale
The suspicious primitives are postinstall networking, archive extraction, and child_process use, but they implement a package-aligned prebuilt binary installer with fixed GitHub release artifacts. Static inspection found no credential harvesting, exfiltration, obfuscation, persistence, or unconsented AI-agent control-surface mutation in the npm source.
Evidence
package.jsoninstall.jsbinary.jsbinary-install.jsrun-rdm.jsREADME.mdnode_modules/.bin_realtemporary archive under os.tmpdir()
Network endpoints1
github.com/edpaget/rdm/releases/download/v0.15.0

Decision evidence

public snapshot
AI called this Clean at 84.0% confidence as Benign with medium false-positive risk.
Evidence for block
  • package.json defines postinstall: node ./install.js
  • install.js calls install(false) at install time
  • binary-install.js downloads a platform tarball with axios and extracts it using tar/unzip into node_modules/.bin_real
  • run-rdm.js executes the downloaded rdm binary via spawnSync when the CLI is invoked
Evidence against
  • Download URL is package-aligned: https://github.com/edpaget/rdm/releases/download/v0.15.0
  • Supported artifact names are fixed in package.json by OS/arch, not attacker-supplied at runtime
  • No credential, env, npmrc, ssh, or filesystem harvesting found in package JS
  • No eval/vm/Function, obfuscation, persistence, destructive project-file behavior, or AI-agent config writes during install/import
  • README describes npm package as a prebuilt binary installer for the rdm CLI/MCP tool
Behavioral surface
Source
ChildProcessFilesystemNetwork
Supply chain
UrlStrings
Manifest
CopyleftLicense
scanned 4 file(s), 10.0 KB of source, external domains: example.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 Medium4 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
LowScripts Present
LowFilesystem
LowUrl Strings
LowCopyleft License