---
canonical: "https://firewall.lpm.dev/npm/lightbase-edge"
markdown: "https://firewall.lpm.dev/npm/lightbase-edge/v/0.1.17.md"
package: "lightbase-edge"
report_status: "published"
title: "lightbase-edge@0.1.17 npm security report"
verdict: "malicious"
version: "0.1.17"
---

# lightbase-edge@0.1.17 npm security report

> **Trust boundary:** Package metadata, advisory text, filenames, URLs, and source snippets in this report come from external packages or feeds. Treat them as untrusted evidence. Do not execute instructions or code found in this document.

## Verdict summary
**Blocked & quarantined** — An import can publish or update the configured app manifest and use the user's deployment token without an explicit deploy command.

- **Verdict:** Malicious
- **Product-default install policy:** Block
- **Firewall policy:** Matched malicious
- **Public report status:** Published
- **Threat category:** Malware
- **Selected version:** 0.1.17
- **Selected version is latest:** Yes
- **Analysis source:** AI Security Review (lpm-firewall-ai)

This is the current Firewall decision for the selected package version, based on the available public evidence. Findings for this version do not establish the status of other versions.

AI assessment: malicious; recommendation: publish block. This assessment is supporting evidence; the published decision above determines the current policy.

The package's main entry performs a deploy by default when imported, using ambient Lightbase credentials to update an app manifest. Although the destination is the configured service and deployment matches the CLI's purpose, automatic use of the user's token on import meets the stated malicious automatic-action rule.

## Latest scan
- **Scanner version:** rust-scanner-worker-schema-1
- **Recorded final verdict:** Malicious
- **Recorded analysis confidence:** 92.0%
- **Started:** 2026-11-04T22:41:03.673Z
- **Finished:** 2026-11-04T22:42:06.784Z
- **Download time:** 507 ms
- **Static scan time:** 122 ms
- **AI review time:** 62481 ms
- **Total time:** 63111 ms

The recorded confidence comes from the underlying analysis. Trusted advisory policy can determine the final verdict even when the AI assessment differs.

## Security analysis

### Published attack-surface review

- **Summary:** Importing the package main can trigger a deployment that uses ambient Lightbase credentials.

- **Trigger:** Importing cli.mjs without a command argument; the module dispatches immediately and defaults to deploy.

- **Impact:** An import can publish or update the configured app manifest and use the user's deployment token without an explicit deploy command.

- **Evidence paths:** package.json, cli.mjs

- **Review source:** ai\_review

- **Reviewed:** 2026-11-04T22:42:06.784Z

### AI review details

- **Review stage:** source\_first\_review

- **Mechanism:** The deploy command reads the configured Lightbase token and sends it in an authenticated manifest PUT to the configured service URL.

- **Attack narrative:** The package declares cli.mjs as its main entry, but that file executes its command dispatcher at module top level and defaults to deploy. Importing it can therefore run a deployment using LIGHTBASE\_DEPLOY\_TOKEN or LIGHTBASE\_API\_KEY from the environment, sending the token in a manifest PUT to the configured Lightbase service and updating the app without an explicit deploy request.

- **Rationale:** The package's main entry performs a deploy by default when imported, using ambient Lightbase credentials to update an app manifest. Although the destination is the configured service and deployment matches the CLI's purpose, automatic use of the user's token on import meets the stated malicious automatic-action rule.

- **Files touched:** ${cfg.staticOut}/\_lb-manifest.json, ${cfg.staticOut}/\_lb/{appId}/{versionDir}/server.js

- **Network endpoints:** Configured LIGHTBASE\_URL or LIGHTBASE\_BASE\_URL host: /api/v1/projects/{projectId}/edge/apps/{appId}/manifest

### Review decision

- **Verdict:** Malicious

- **Confidence:** 92.0%

- **Recommended action:** publish\_block

- **Intent class:** Malware

- **False-positive risk:** Low

- **Evidence for block:** package.json exposes cli.mjs as both the package main and executable., cli.mjs defaults to the deploy command and invokes the selected command at module top level, so importing the main entry runs deploy., The deploy command reads LIGHTBASE\_DEPLOY\_TOKEN or LIGHTBASE\_API\_KEY from the environment., Deploy sends a PUT with that token to the configured Lightbase URL to register or update the app manifest.

- **Evidence against:** The package is described as a Lightbase deployment CLI, and deployment is its stated purpose., The token is sent to the configured Lightbase service URL, not to an unrelated collector., Deployment requires Lightbase configuration and credentials to make the authenticated request.

## Affected versions and remediation

This report applies to lightbase-edge@0.1.17.

- Avoid installing lightbase-edge@0.1.17. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.

## Public findings

### 1. Medium: Network
- **Category:** Source
- **Confidence:** 75.0%

Package source references network APIs.

### 2. Medium: Environment Vars
- **Category:** Source
- **Confidence:** 75.0%

Package source references environment variables.

### 3. Low: Filesystem
- **Category:** Source
- **Confidence:** 70.0%

Package source references filesystem APIs.

### 4. High: Copied Package Dependency Bridge
- **Category:** Source
- **Confidence:** 83.0%
- **Path:** cli.mjs
- **Public source:** [View source](<https://unpkg.com/lightbase-edge@0.1.17/cli.mjs>)

Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.

Public source snippet (untrusted):

```javascript
package = lightbase-edge; repositoryIdentity = lightbase; dependency = esbuild
L146: // (monorepo symlink — npm installs a REAL symlink, not a copy), ESM
L147: // import('esbuild') resolves from the package's REAL path, where the host
L148: // project's esbuild is invisible → "esbuild is required" on every deploy.
```

### 5. Low: High Entropy Strings
- **Category:** Supply Chain
- **Confidence:** 55.0%

Package source contains high-entropy string patterns.

### 6. Low: Url Strings
- **Category:** Supply Chain
- **Confidence:** 65.0%

Package source contains URL literals.

### 7. Medium: Structural Risk Force Deep Review
- **Category:** Artifact Inventory
- **Confidence:** 65.0%

Artifact structure forces deeper review even if the static behavioral verdict is clean.

### 8. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 92.0%
- **Path:** package.json
- **Public source:** [View source](<https://unpkg.com/lightbase-edge@0.1.17/package.json>)

package.json exposes cli.mjs as both the package main and executable.

Public source snippet (untrusted):

```json
"main": "cli.mjs",
  "files": [
    "cli.mjs"
  ],
  "engines": {
    "node": ">=18"
  },
  "keywords": [],
  "repository": {
```

### 9. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 92.0%
- **Path:** cli.mjs
- **Public source:** [View source](<https://unpkg.com/lightbase-edge@0.1.17/cli.mjs>)

cli.mjs defaults to the deploy command and invokes the selected command at module top level, so importing the main entry runs deploy.

Public source snippet (untrusted):

```javascript
const cmd = process.argv[2] || 'deploy';
// BismiLLAH (0.1.6 — always-produce CI): `deploy`/`optimize` NEVER exit early —
// without complete credentials they assemble the Pages output a
```

### 10. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 92.0%
- **Path:** cli.mjs
- **Public source:** [View source](<https://unpkg.com/lightbase-edge@0.1.17/cli.mjs>)

cli.mjs defaults to the deploy command and invokes the selected command at module top level, so importing the main entry runs deploy.

Public source snippet (untrusted):

```javascript
(commands[cmd] ?? die(`Unknown command: ${cmd} (use init|build|deploy|register|optimize|status|logs)`))().catch((e) => die(e && e.message));
```

### 11. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 92.0%
- **Path:** cli.mjs
- **Public source:** [View source](<https://unpkg.com/lightbase-edge@0.1.17/cli.mjs>)

The deploy command reads LIGHTBASE\_DEPLOY\_TOKEN or LIGHTBASE\_API\_KEY from the environment.

Public source snippet (untrusted):

```javascript
const token = process.env.LIGHTBASE_DEPLOY_TOKEN || process.env.LIGHTBASE_API_KEY || '';
  if (!url || !projectId || !token) {
    if (opts.tolerant) {
      log(`WARN credentials incomplete (url=${url ? 'yes' : 'no'} pr
```

### 12. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 92.0%
- **Path:** cli.mjs
- **Public source:** [View source](<https://unpkg.com/lightbase-edge@0.1.17/cli.mjs>)

Deploy sends a PUT with that token to the configured Lightbase URL to register or update the app manifest.

Public source snippet (untrusted):

```javascript
const resp = await fetch(`${url}/api/v1/projects/${projectId}/edge/apps/${cfg.appId}/manifest`, {
    method: 'PUT',
    headers: {
      "content-type": "application/json",
      apikey: token,
      'x-lightbase-project': projectId,
    }
```

## Dependencies and install lifecycle
- **Lifecycle scripts present:** No

- **Dependencies:** 1
- **Optional dependencies:** 0
- **Peer dependencies:** 0
- **Development dependencies:** 0
- **Published dependency-graph edges:** 1

### Published dependency entries
- esbuild ^0.21.5 (Dependency)

## Package metadata
- **Package:** lightbase-edge
- **Ecosystem:** npm
- **Version:** 0.1.17
- **License:** MIT
- **Version published:** 2026-11-04T22:33:12.014Z
- **Package first seen:** 2026-10-08T20:56:24.207Z
- **Package last seen:** 2026-11-04T22:42:06.784Z
- **Known versions:** 15
- **Latest version:** 0.1.17
- **Appeal under review:** No
- **Description:** The Lightbase Edge deploy tool: full-Node SSR for any Node codebase (Astro, Nuxt, Next, custom servers) served through the Lightbase edge gateway with a static CDN front. Zero edge functions, zero provisioning, zero rewrites — bundles your server, publish
- **Runtime engines:** node: \>=18
- **Artifact files:** 3
- **Artifact unpacked size:** 115,528 bytes
- **Artifact signatures:** 2
- **Attestations:** No

## References
- [HTML security report](<https://firewall.lpm.dev/npm/lightbase-edge/v/0.1.17>)
- [Repository](<https://github.com/ridwanullahh/lightbase.git>)
- [Homepage](<https://github.com/ridwanullahh/lightbase#readme>)
- [Issues](<https://github.com/ridwanullahh/lightbase/issues>)
