registry  /  @loopress/cli  /  0.6.0

@loopress/cli@0.6.0

CLI tool for syncing WordPress CodeSnippets, styles, and menus via the REST API

AI Security Review

scanned 3d ago · by lpm-firewall-ai

No confirmed malicious attack surface was found. The risky primitives are command-invoked CLI behavior for WordPress/Loopress sync, browser login, and Composer integration.

Static reason
One or more suspicious static signals were detected.; previous stored version diff introduced dangerous source
Trigger
User runs explicit CLI commands such as lps login, plugin add, plugin push, snippets push, or composer push.
Impact
Expected CLI effects: writes loopress.json or ~/.loopress config, syncs snippets/plugins/composer data to configured WordPress or Loopress endpoints.
Mechanism
User-invoked network sync and local config management.
Rationale
Static inspection shows a normal oclif CLI for managing Loopress/WordPress configuration and sync operations; scanner findings map to expected user-invoked network, local file, and Composer behaviors. There are no lifecycle hooks or hidden execution paths indicating malware.
Evidence
package.jsonbin/run.jsdist/commands/login.jsdist/commands/plugin/add.jsdist/lib/push-command.jsdist/config/auth.manager.jsdist/config/project-config.manager.jsdist/commands/snippet/push.jsdist/commands/composer/push.js~/.loopress/auth.json~/.loopress/config.jsonloopress.jsoncomposer.jsoncomposer.lock<configured snippets directory>
Network endpoints5
console.loopress.devapi.loopress.devapi.wordpress.org/plugins/info/1.2/<configured WordPress URL>/wp-json/loopress/v1/*<configured WordPress URL>/wp-json/code-snippets/v1/snippets

Decision evidence

public snapshot
AI called this Clean at 90.0% confidence as Benign with low false-positive risk.
Evidence for block
  • dist/lib/push-command.js posts deployment status and site URL to https://api.loopress.dev after push commands.
  • dist/commands/login.js uses child_process.exec only to open the Loopress console login URL in a browser.
  • dist/commands/plugin/add.js can spawn composer require for user-supplied Composer package names when explicitly invoked.
Evidence against
  • package.json has no install/preinstall/postinstall lifecycle hooks.
  • bin/run.js only delegates to oclif command execution; no import-time payload found.
  • Network use is aligned with CLI functions: Loopress console/API, WordPress REST endpoints, and WordPress.org plugin metadata.
  • Credentials are stored locally under ~/.loopress by explicit login/project config commands and used as auth headers for configured endpoints.
  • No evidence of credential harvesting, hidden persistence, destructive filesystem behavior, eval/vm usage, or AI-agent control-surface writes.
Behavioral surface
Source
ChildProcessDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chain
UrlStrings
Manifest
CopyleftLicense
scanned 33 file(s), 60.8 KB of source, external domains: api.loopress.dev, api.wordpress.org, console.loopress.dev, example.com

Source & flagged code

3 flagged · loading source
dist/commands/login.jsView file
1import { Command } from '@oclif/core'; L2: import { exec } from 'node:child_process'; L3: import { createServer } from 'node:http'; L4: import { authManager } from '../config/auth.manager.js'; ... L20: }; L21: const cmd = cmds[process.platform]; L22: if (cmd) ... L33: res.writeHead(400, { 'Content-Type': 'text/plain' }); L34: res.end('Missing token'); L35: return;
High
Sandbox Evasion Gated Capability

Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.

dist/commands/login.jsView on unpkg · L1
bin/dev.cmdView file
path = bin/dev.cmd kind = build_helper sizeBytes = 86 magicHex = [redacted]
Medium
Ships Build Helper

Package ships non-JavaScript build or shell helper files.

bin/dev.cmdView on unpkg
dist/commands/plugin/add.jsView file
matchType = previous_version_dangerous_delta matchedPackage = @loopress/cli@0.5.0 matchedIdentity = npm:QGxvb3ByZXNzL2NsaQ:0.5.0 similarity = 0.880 summary = stored previous version shares package body but lacks this dangerous source file
Critical
Previous Version Dangerous Delta

This package version adds a dangerous source file absent from the previous stored version.

dist/commands/plugin/add.jsView on unpkg

Findings

1 Critical1 High5 Medium4 Low
CriticalPrevious Version Dangerous Deltadist/commands/plugin/add.js
HighSandbox Evasion Gated Capabilitydist/commands/login.js
MediumDynamic Require
MediumNetwork
MediumEnvironment Vars
MediumShips Build Helperbin/dev.cmd
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowUrl Strings
LowCopyleft License