registry  /  openwork-orchestrator  /  0.17.8

openwork-orchestrator@0.17.8

OpenWork host orchestrator for opencode + OpenWork server + opencode-router

AI Security Review

scanned 3d ago · by lpm-firewall-ai

Install-time code may fetch and install an executable fallback binary when optional platform packages are unavailable. The source does not show direct malware behavior, but the lifecycle binary download and environment override leave meaningful supply-chain risk.

Static reason
One or more suspicious static signals were detected.
Trigger
npm postinstall when platform optionalDependency is missing, or user runs the openwork CLI
Impact
Potential execution of package-supplied or override-specified native executable outside audited JS source
Mechanism
install-time executable download and CLI binary launcher
Attack narrative
On install, postinstall.mjs verifies a platform-specific optional package. If missing, it downloads an executable fallback from the package's GitHub releases, writes it under dist/bin, and marks it executable. The CLI later spawns the platform package binary, fallback binary, or an environment-specified path. No foreign agent configuration mutation or exfiltration was found in the JS source.
Rationale
This is not confirmed malicious by source inspection, but install-time native binary download with an overrideable base URL is a real unresolved supply-chain risk. Marking warn is appropriate rather than blocking because observed behavior is package-aligned and no concrete unconsented agent hijack, exfiltration, persistence, or destructive action appears in the package source.
Evidence
package.jsonpostinstall.mjsbin/openworkconstants.jsondist/bin/openworkdist/bin/openwork.exe
Network endpoints1
github.com/different-ai/openwork/releases/download/openwork-orchestrator-v${version}/${asset}

Decision evidence

public snapshot
AI called this Suspicious at 83.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • package.json defines postinstall: node ./postinstall.mjs
  • postinstall.mjs downloads a platform executable from GitHub if optional platform package is absent
  • postinstall.mjs allows OPENWORK_ORCHESTRATOR_DOWNLOAD_BASE_URL to override the binary download base URL
  • bin/openwork executes a resolved platform binary or OPENWORK_ORCHESTRATOR_BIN_PATH via spawnSync
Evidence against
  • No code writes Claude/Codex/Cursor/MCP or other foreign AI-agent control surfaces
  • No credential harvesting, broad filesystem scanning, persistence, or destructive behavior found
  • Network use is package-aligned fallback binary retrieval from github.com/different-ai/openwork
  • Downloaded fallback is written under the package directory at dist/bin/openwork or dist/bin/openwork.exe
Behavioral surface
Source
EnvironmentVarsFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 1 file(s), 3.34 KB of source, external domains: github.com

Source & flagged code

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

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node ./postinstall.mjs
Medium
Ambiguous Install Lifecycle Script

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

package.jsonView on unpkg

Findings

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