registry  /  @apex-stack/core  /  0.20.0

@apex-stack/core@0.20.0

The full-stack meta-framework for Alpine.js — CLI and runtime

AI Security Review

scanned 2h ago · by lpm-firewall-ai

LPM treats this as warn-only first-party agent extension lifecycle risk. No malicious install-time attack surface was confirmed. Residual risk is explicit/user-prompted editor extension installation into VS Code-family editors using a bundled first-party grammar-only VSIX.

Static reason
One or more suspicious static signals were detected.; previous stored version diff introduced dangerous source
Trigger
User runs apex new or apex upgrade and accepts the VS Code extension prompt, or passes --vscode; package-manager installs occur during explicit CLI project setup/upgrade.
Impact
May modify the user's project directory, run dependency installation, initialize git, or install the bundled Apex .alpine syntax extension; no exfiltration or covert execution found.
Mechanism
Prompted first-party editor extension setup and CLI scaffold/upgrade automation
Rationale
Source inspection did not find lifecycle execution, credential theft, covert networking, remote code loading, or destructive behavior. Because the CLI can prompt to install a first-party extension into broad editor surfaces, downgrade to a warning rather than block.
Evidence
package.jsondist/cli.jsdist/upgrade-363YDSK6.jsdist/chunk-TWAGSGFN.jsdist/mcp-CH7L4GF3.jsvscode/apex-alpine.vsixtarget project copied from templates/defaulttarget project package.json
Network endpoints3
github.com/andrecorugda/apexjs.gitapexjs.sitelocalhost:3000/mcp

Decision evidence

public snapshot
AI called this Suspicious at 88.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • dist/chunk-TWAGSGFN.js can install bundled vscode/apex-alpine.vsix into code/cursor/windsurf/codium after prompt or --vscode.
  • dist/cli.js apex new scaffolds files, may run package-manager install and git init in the new target by default.
  • dist/upgrade-363YDSK6.js apex upgrade can query npm and optionally self-update global @apex-stack/core after prompt.
Evidence against
  • package.json has no preinstall/install/postinstall lifecycle hooks.
  • vscode/apex-alpine.vsix contains only VS Code language/grammar contributions; no extension main/activation script observed.
  • Network use is package-aligned: npm view/install for @apex-stack packages and user-supplied local MCP URL.
  • No credential harvesting, exfiltration endpoint, destructive behavior, persistence, eval, or remote payload loader found.
Behavioral surface
Source
ChildProcessDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 43 file(s), 161 KB of source, external domains: 127.0.0.1, openapi.vercel.sh

Source & flagged code

8 flagged · loading source
dist/upgrade-363YDSK6.jsView file
16// src/commands/upgrade.ts L17: import { spawnSync as spawnSync2 } from "child_process"; L18: import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "fs";
High
Child Process

Package source references child process execution.

dist/upgrade-363YDSK6.jsView on unpkg · L16
50} L51: async function maybeSelfUpdate(reexecArgv, choice) { L52: if (choice === false) return false;
High
Shell

Package source references shell execution.

dist/upgrade-363YDSK6.jsView on unpkg · L50
48function installGlobalLatest() { L49: return spawnSync("npm", ["install", "-g", `${PKG}@latest`], { stdio: "inherit", shell: WIN }).status === 0; L50: } ... L62: if (!yes) { L63: log(` ${color.gray("Skipped. Update later with")} ${color.cyan(`npm i -g ${PKG}@latest`)} L64: `);
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

dist/upgrade-363YDSK6.jsView on unpkg · L48
dist/chunk-S77I7EPX.jsView file
57const publicConfig = runtimeConfig.public ?? {}; L58: const importServer = (relFile) => import(pathToFileURL(join(dir, "server", relFile)).href); L59: const registry = {};
Medium
Dynamic Require

Package source references dynamic require/import behavior.

dist/chunk-S77I7EPX.jsView on unpkg · L57
vscode/apex-alpine.vsixView file
path = vscode/apex-alpine.vsix kind = high_entropy_blob sizeBytes = 33222 magicHex = [redacted]
High
Ships High Entropy Blob

Package ships high-entropy non-source blobs.

vscode/apex-alpine.vsixView on unpkg
path = vscode/apex-alpine.vsix kind = compressed_blob sizeBytes = 33222 magicHex = [redacted]
Medium
Ships Compressed Blob

Package ships compressed or archive-like blobs.

vscode/apex-alpine.vsixView on unpkg
path = vscode/apex-alpine.vsix kind = nested_archive_needs_inspection sizeBytes = 33222 magicHex = [redacted]
Low
Nested Archive Needs Inspection

Package ships a nested archive or MCP bundle that was inventoried but not recursively analyzed.

vscode/apex-alpine.vsixView on unpkg
dist/cli.jsView file
matchType = previous_version_dangerous_delta matchedPackage = @apex-stack/core@0.15.0 matchedIdentity = npm:QGFwZXgtc3RhY2svY29yZQ:0.15.0 similarity = 0.633 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; route for source-aware review.

dist/cli.jsView on unpkg

Findings

1 Critical4 High5 Medium5 Low
CriticalPrevious Version Dangerous Deltadist/cli.js
HighChild Processdist/upgrade-363YDSK6.js
HighShelldist/upgrade-363YDSK6.js
HighRuntime Package Installdist/upgrade-363YDSK6.js
HighShips High Entropy Blobvscode/apex-alpine.vsix
MediumDynamic Requiredist/chunk-S77I7EPX.js
MediumNetwork
MediumEnvironment Vars
MediumShips Compressed Blobvscode/apex-alpine.vsix
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
LowNested Archive Needs Inspectionvscode/apex-alpine.vsix