registry  /  @morphy-agent/channel-slack  /  0.6.5

@morphy-agent/channel-slack@0.6.5

Slack channel adapter for Morphy — DMs, file uploads, threads

AI Security Review

scanned 3h ago · by lpm-firewall-ai

Install-time code fetches an opaque platform binary and stores it as the package executable. No confirmed malicious behavior is visible in the JavaScript source, but the real runtime behavior is delegated to a remote binary outside the package tarball.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; user invokes channel-slack CLI
Impact
Uninspectable native binary gains execution when the CLI is run, with install-time supply-chain risk from remote release assets.
Mechanism
install-time remote binary download and CLI wrapper execution
Attack narrative
On installation, install.js selects a platform-specific release asset, downloads it from GitHub, checks it against sha256sums.txt from the same release, chmods it, and leaves bin/run.js to execute it. The JS source does not show exfiltration, persistence, or AI-agent hijacking, but the package’s meaningful behavior is an opaque remote native payload not present for static review.
Rationale
This is not enough to call malicious by source inspection, but install-time download of an unbundled native executable leaves unresolved supply-chain risk. The behavior is package-aligned and contained to its own bin path, so warn rather than block.
Evidence
package.jsoninstall.jsbin/run.jsbin/channel-slackbin/channel-slack.exe
Network endpoints2
github.com/deadraid/morphy-releases/releases/download/v0.6.5/github.com/deadraid/morphy-releases/releases/download/v0.6.5/sha256sums.txt

Decision evidence

public snapshot
AI called this Suspicious at 78.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • package.json defines postinstall: node install.js
  • install.js downloads a platform binary from GitHub releases during install
  • install.js verifies checksum from the same remote release, not an in-package trusted manifest
  • bin/run.js executes the downloaded bin/channel-slack binary with user args
Evidence against
  • No code writes AI-agent control surfaces or persistence locations
  • No credential/env/file harvesting found in JS wrapper
  • Network use is package-aligned to github.com/deadraid/morphy-releases release assets
  • Downloaded binary is installed under the package bin directory only
Behavioral surface
Source
ChildProcessCryptoFilesystemNetwork
Supply chain
UrlStrings
Manifest
NoLicense
scanned 2 file(s), 5.28 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 Medium4 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
LowScripts Present
LowFilesystem
LowUrl Strings
LowNo License