registry  /  @dagucloud/dagu  /  2.9.1

@dagucloud/dagu@2.9.1

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

AI Security Review

scanned 8d ago · by lpm-firewall-ai

No confirmed malicious attack surface. The package has an install-time binary fallback downloader and a user-invoked CLI wrapper, both aligned with a single-binary workflow tool.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install postinstall if optional platform package is missing; user runs dagu or calls runBinary
Impact
Installs or runs the Dagu binary for the current platform; no source evidence of unauthorized data access or exfiltration
Mechanism
platform binary resolution/download and execFileSync wrapper
Rationale
Static inspection found suspicious primitives, but they are expected for a cross-platform CLI package that installs or wraps its platform binary. No concrete malicious behavior, credential theft, persistence, reviewer manipulation, or unaligned network endpoint was found.
Evidence
package.jsoninstall.jsindex.jsbin/clilib/platform.jsdagu or dagu.exe fallback binary in package root
Network endpoints1
registry.npmjs.org/@dagucloud/${platformSpecificPackageName}/-/${platformSpecificPackageName}-${PACKAGE_VERSION}.tgz

Decision evidence

public snapshot
AI called this Clean at 88.0% confidence as Benign with low false-positive risk.
Evidence for block
  • package.json defines postinstall: node ./install.js
  • install.js uses https GET to registry.npmjs.org and writes fallback binary to package root
  • bin/cli and index.js execute the resolved dagu binary via execFileSync when invoked
Evidence against
  • install.js downloads only @dagucloud platform package matching package version from npm registry
  • No credential/env harvesting, persistence, destructive file operations, or exfiltration code found
  • Network endpoint is package-aligned binary fallback, not arbitrary C2
  • Runtime child_process use is the package's documented CLI wrapper behavior
  • lib/platform.js only maps OS/arch and optionally reads /proc/cpuinfo for ARM 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