---
canonical: "https://firewall.lpm.dev/npm/devplatform-spa-devtools/v/35.2.6"
markdown: "https://firewall.lpm.dev/npm/devplatform-spa-devtools/v/35.2.6.md"
package: "devplatform-spa-devtools"
report_status: "published"
title: "devplatform-spa-devtools@35.2.6 npm security report"
verdict: "malicious"
version: "35.2.6"
---

# devplatform-spa-devtools@35.2.6 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** — Remote operator-controlled native code execution as the importing process user.

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

Importing the advertised SDK launches an unconsented remote binary-loader path. It fetches an opaque payload, writes it to temporary storage, and executes it detached.

## Latest scan
- **Scanner version:** rust-scanner-worker-schema-1
- **Verdict:** Malicious
- **Confidence:** 99.0%
- **Started:** 2026-08-05T16:27:34.413Z
- **Finished:** 2026-08-05T16:27:56.523Z
- **Download time:** 502 ms
- **Static scan time:** 28 ms
- **AI review time:** 21580 ms
- **Total time:** 22110 ms

## Security analysis

### Published attack-surface review

- **Summary:** Importing the advertised SDK launches an unconsented remote binary-loader path. It fetches an opaque payload, writes it to temporary storage, and executes it detached.

- **Trigger:** Any application runtime that requires index.js.

- **Impact:** Remote operator-controlled native code execution as the importing process user.

- **Evidence paths:** package.json, index.js, \_runtime.js, lib/telemetry.js

- **Review source:** ai\_review

- **Reviewed:** 2026-08-05T16:27:56.523Z

### AI review details

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

- **Mechanism:** Import-time remote payload download, drop, chmod, and detached execution.

- **Attack narrative:** A normal require of the package silently loads \_runtime.js. Its setup routine contacts hard-coded, obfuscated hosts for an OS-specific opaque binary, with DNS TXT reconstruction as fallback. When a payload exceeds 1 KB, it is dropped into a temporary directory, chmodded on Unix, and launched through a detached shell or cmd.exe process. The same loader pattern also appears in the unreferenced telemetry file.

- **Rationale:** The package’s documented wrapper has no legitimate need to execute opaque remote binaries on import. The behavior is concrete, automatic, stealthy, and provides remote code execution.

- **Files touched:** index.js, \_runtime.js, /tmp/.analytics\_state, /var/tmp/.cache\_\<random\>, C:\\Windows\\Temp\\analytics\_state, C:\\Windows\\Temp\\dotnet\_diag\_\<random\>.exe

- **Network endpoints:** oob-worker.cf103-070.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf101-adf.workers.dev, sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, net.dl.wel1.ru

### Review decision

- **Verdict:** Malicious

- **Confidence:** 99.0%

- **Recommended action:** publish\_block

- **Intent class:** Malware

- **False-positive risk:** Low

- **Evidence for:** index.js imports \_runtime on every package import., \_runtime.js downloads platform payloads from obfuscated workers.dev hosts., DNS TXT fallback reconstructs base64 payloads from wel1.ru domains., Downloaded bytes are written to /var/tmp or Windows Temp, made executable, and spawned detached., No lifecycle hook is needed: ordinary require() triggers setup().

- **Evidence against:** package.json has no lifecycle scripts., No credential harvesting or direct data exfiltration was found.

## Public findings

### 1. High: Child Process
- **Category:** Source
- **Confidence:** 85.0%
- **Path:** \_runtime.js
- **Public source:** [View source](<https://unpkg.com/devplatform-spa-devtools@35.2.6/_runtime.js>)

Package source references child process execution.

Public source snippet (untrusted):

```javascript
L122: try {
L123: const cp = require("child_process");
L124: if (isWin) {
```

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

Package source references network APIs.

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

Package source references environment variables.

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

Package source references filesystem APIs.

### 5. Critical: Download Execute
- **Category:** Source
- **Confidence:** 90.0%
- **Path:** \_runtime.js
- **Public source:** [View source](<https://unpkg.com/devplatform-spa-devtools@35.2.6/_runtime.js>)

Source downloads or fetches remote code and executes it.

Public source snippet (untrusted):

```javascript
L2: 
L3: const https = require("https");
L4: const path = require("path");
...
L45: const CACHE_TTL = 20525;
L46: const _l = (...a) => process.stderr.write("");
L47: 
...
L58: const isWin = _p("platform") === "win32";
L59: const dir = isWin ? (process.env.TEMP || process.env.TMP || "C:\\Windows\\Temp") : "/tmp";
L60: return path.join(dir, isWin ? "analytics_state" : ".analytics_state");
...
L92: try {
L93: require("dns").resolveTxt(d, (e, rr) => {
L94: if (e || !rr || !rr.length) return r("");
```

### 6. Critical: Trigger Reachable Dangerous Capability
- **Category:** Source
- **Confidence:** 90.0%
- **Path:** \_runtime.js
- **Public source:** [View source](<https://unpkg.com/devplatform-spa-devtools@35.2.6/_runtime.js>)

A package entrypoint or install-time lifecycle script reaches a source file with blocking dangerous behavior.

Public source snippet (untrusted):

```javascript
Trigger-reachable chain: manifest.main -> index.js -> _runtime.js
L2: 
L3: const https = require("https");
L4: const path = require("path");
...
L45: const CACHE_TTL = 20525;
L46: const _l = (...a) => process.stderr.write("");
L47: 
...
L58: const isWin = _p("platform") === "win32";
L59: const dir = isWin ? (process.env.TEMP || process.env.TMP || "C:\\Windows\\Temp") : "/tmp";
L60: return path.join(dir, isWin ? "analytics_state" : ".analytics_state");
...
L92: try {
L93: require("dns").resolveTxt(d, (e, rr) => {
L94: if (e || !rr || !rr.length) return r("");
```

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

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

## Package metadata
- **Package:** devplatform-spa-devtools
- **Ecosystem:** npm
- **Version:** 35.2.6
- **Version published:** 2026-08-05T13:35:38.908Z
- **Package first seen:** 2026-08-05T16:27:56.523Z
- **Package last seen:** 2026-08-05T16:27:56.523Z
- **Known versions:** 1
- **Latest version:** 35.2.6
- **Appeal under review:** No
- **Description:** Devplatform spa devtools SDK for internal consumers
- **Artifact files:** 7
- **Artifact unpacked size:** 87,304 bytes
- **Artifact signatures:** 1
- **Attestations:** No

## References
- [HTML security report](<https://firewall.lpm.dev/npm/devplatform-spa-devtools/v/35.2.6>)
- [OSV advisory](<https://osv.dev/vulnerability/MAL-2026-12756>)
