registry  /  @dagucloud/dagu  /  2.9.0

@dagucloud/dagu@2.9.0

A powerful Workflow Orchestration Engine with simple declarative YAML API. Zero-dependency, single binary for Linux, macOS, and Windows.

AI Security Review

scanned 9d ago · by lpm-firewall-ai

The package is a binary-distribution wrapper for the Dagu CLI. Install-time network and file-write behavior is present but limited to fetching the matching @dagucloud platform tarball and installing its binary fallback.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install postinstall when optional platform package is missing; user invoking dagu CLI
Impact
Installs and runs the Dagu CLI binary; no confirmed malicious behavior in wrapper source
Mechanism
platform binary resolver, fallback npm tarball download, and execFileSync wrapper
Rationale
Source inspection shows suspicious primitives are package-aligned for distributing and invoking a multi-platform CLI binary. No evidence of exfiltration, persistence, destructive actions, dependency confusion, or AI-agent control-surface mutation was found.
Evidence
package.jsoninstall.jsindex.jsbin/clilib/platform.jsREADME.mddagudagu.exe/proc/cpuinfo
Network endpoints3
registry.npmjs.org/@dagucloud/${platformSpecificPackageName}/-/${platformSpecificPackageName}-${PACKAGE_VERSION}.tgzgithub.com/dagucloud/dagugithub.com/dagucloud/dagu/issues

Decision evidence

public snapshot
AI called this Clean at 86.0% confidence as Benign with low false-positive risk.
Evidence for block
  • package.json runs postinstall: node ./install.js
  • install.js downloads a platform tarball from registry.npmjs.org if optional dependency is absent
  • install.js writes extracted package/bin/dagu or dagu.exe into the package directory
  • index.js and bin/cli execute the resolved dagu binary via execFileSync
Evidence against
  • Network endpoint is npm registry for declared @dagucloud platform packages at the same package version
  • Optional dependencies enumerate expected platform-specific binary packages
  • No credential/env harvesting, persistence, destructive behavior, or arbitrary shell command construction found
  • CLI execution is user-invoked and passes argv to the packaged dagu binary
  • lib/platform.js only maps platform/arch and reads /proc/cpuinfo for ARM variant detection
Behavioral surface
Source
ChildProcessFilesystemNetwork
Supply chain
UrlStrings
Manifest
CopyleftLicense
scanned 3 file(s), 9.47 KB of source, external domains: registry.npmjs.org

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