---
canonical: "https://firewall.lpm.dev/npm/dsh-jiuling-remote-desktop/v/1.0.7"
markdown: "https://firewall.lpm.dev/npm/dsh-jiuling-remote-desktop/v/1.0.7.md"
package: "dsh-jiuling-remote-desktop"
report_status: "published"
title: "dsh-jiuling-remote-desktop@1.0.7 npm security report"
verdict: "suspicious"
version: "1.0.7"
---

# dsh-jiuling-remote-desktop@1.0.7 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
**Flagged — allowed with a warning** — Allowed by default policy, but 12 finding(s) warrant review before installing.

- **Verdict:** Suspicious
- **Product-default install policy:** Warn
- **Firewall policy:** Matched warn-list
- **Public report status:** Published
- **Threat category:** Remote Code Execution
- **Selected version:** 1.0.7
- **Selected version is latest:** No
- **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: suspicious; recommendation: downgrade to warn. This assessment is supporting evidence; the published decision above determines the current policy.

The shared default credentials and automatic tunnel startup create an unsafe remote-control exposure despite the package's stated remote-access purpose. This warrants a warning; the inspected source does not establish malicious intent or direct command execution.

## Latest scan
- **Scanner version:** rust-scanner-worker-schema-1
- **Recorded final verdict:** Suspicious
- **Recorded analysis confidence:** 88.0%
- **Started:** 2026-10-15T17:57:59.896Z
- **Finished:** 2026-10-15T17:59:51.125Z
- **Download time:** 763 ms
- **Static scan time:** 215 ms
- **AI review time:** 110251 ms
- **Total time:** 111229 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:** The plugin automatically starts a public tunnel using a package-defined default credential, while the relay also falls back to a package-defined access token. A holder of those shared defaults can reach remote RPC functionality, including prompting a local agent.

- **Trigger:** Plugin startup, unless tunnel startup is explicitly disabled or replaced with configured credentials.

- **Impact:** A remote caller with the published defaults could access relay functions and submit prompts to the local agent; available agent tools may allow consequential local actions.

- **Evidence paths:** lib/index.js

- **Review source:** ai\_review

- **Reviewed:** 2026-10-15T17:59:51.125Z

### AI review details

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

- **Mechanism:** The tunnel forwards traffic to the local relay, which authenticates requests with the default token and forwards prompt requests to the session controller.

- **Rationale:** The shared default credentials and automatic tunnel startup create an unsafe remote-control exposure despite the package's stated remote-access purpose. This warrants a warning; the inspected source does not establish malicious intent or direct command execution.

- **Files touched:** lib/index.js

- **Network endpoints:** dsh-remote.jiulingssh.xyz, pair.jiulingssh.xyz

### Review decision

- **Verdict:** Suspicious

- **Confidence:** 88.0%

- **Recommended action:** downgrade\_to\_warn

- **Intent class:** Dangerous Capability

- **False-positive risk:** Medium

- **Evidence for warning:** The plugin defines a built-in relay token and uses it when no saved token is available., The relay accepts that token from a request and exposes RPC routes through the tunnel., A built-in tunnel token is used by default, and the tunnel starts unless explicitly disabled., The RPC prompt route forwards remote text to the local session controller.

## Affected versions and remediation

This report applies to dsh-jiuling-remote-desktop@1.0.7.

- Review the evidence and your use of dsh-jiuling-remote-desktop@1.0.7 before allowing it. Restrict the permissions described in this report.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.

## Public findings

### 1. High: Child Process
- **Category:** Source
- **Confidence:** 85.0%
- **Path:** lib/index.js
- **Public source:** [View source](<https://unpkg.com/dsh-jiuling-remote-desktop@1.0.7/lib/index.js>)

Package source references child process execution.

Public source snippet (untrusted):

```javascript
L68: import { randomUUID } from 'node:crypto';
L69: import { spawn } from 'node:child_process';
L70: import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
```

### 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. High: Same File Env Network Execution
- **Category:** Source
- **Confidence:** 85.0%
- **Path:** lib/index.js\#virtual:normalized:round1
- **Public source:** [View source](<https://unpkg.com/dsh-jiuling-remote-desktop@1.0.7/lib/index.js%23virtual%3Anormalized%3Around1>)

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

Public source snippet (untrusted):

```text
L234: // 而 win32 下 `isAbsolute("C:") === false` ⇒ 点「上一级」直接报错。
L235: // dirname("C:Users") = "C:'，dirname("C:\") = "C:\"（等于自身 ⇒ 到顶了）。\n\tconst up = dirname(abs);\n\tconst parent = up === abs ? "" : up;\n\t// 站在驱动器根上（parent 为空）时，把其它盘符一并列出来当出口。\n\tif ...
L236: }
```

### 6. High: Remote System File Write
- **Category:** Source
- **Confidence:** 94.0%
- **Path:** lib/pair.js
- **Public source:** [View source](<https://unpkg.com/dsh-jiuling-remote-desktop@1.0.7/lib/pair.js>)

Source writes bytes from a remote response into a privileged operating-system path.

Public source snippet (untrusted):

```javascript
L53: /** 配对服务的公网地址（Cloudflare 隧道，走 HTTPS）。 */
L54: export const PAIR_ENDPOINT = 'https://pair.jiulingssh.xyz';
L55: 
...
L86: headers: body === undefined ? {} : { 'content-type': 'application/json' },
L87: body: body === undefined ? undefined : JSON.stringify(body),
L88: signal: controller.signal,
L89: });
L90: const text = await response.text();
L91: let payload;
...
L189: code,
L190: device: osHostname(),
L191: });
```

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

Package source contains high-entropy string patterns.

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

Package source contains URL literals.

### 9. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 88.0%
- **Path:** lib/index.js
- **Public source:** [View source](<https://unpkg.com/dsh-jiuling-remote-desktop@1.0.7/lib/index.js>)

The plugin defines a built-in relay token and uses it when no saved token is available.

Public source snippet (untrusted):

```javascript
const DEFAULT_TOKEN =
```

### 10. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 88.0%
- **Path:** lib/index.js
- **Public source:** [View source](<https://unpkg.com/dsh-jiuling-remote-desktop@1.0.7/lib/index.js>)

The plugin defines a built-in relay token and uses it when no saved token is available.

Public source snippet (untrusted):

```javascript
return DEFAULT_TOKEN;
}

/** 组一条 SSE 消息。 */
function sse(eventName, payload) {
	return `event: ${eventName}\ndata: ${JSON.stringify(payload)}\n\n`;
}

/**
 * 列出本
```

### 11. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 88.0%
- **Path:** lib/index.js
- **Public source:** [View source](<https://unpkg.com/dsh-jiuling-remote-desktop@1.0.7/lib/index.js>)

The plugin defines a built-in relay token and uses it when no saved token is available.

Public source snippet (untrusted):

```javascript
const token = ensureToken(ctx, paired);
	const state = { relay: undefined, tunnel: undefined };

	ctx.effect(() => {
		try {
			state.relay = startRelay(ctx, token);
			ctx.logger?
```

### 12. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 88.0%
- **Path:** lib/index.js
- **Public source:** [View source](<https://unpkg.com/dsh-jiuling-remote-desktop@1.0.7/lib/index.js>)

The relay accepts that token from a request and exposes RPC routes through the tunnel.

Public source snippet (untrusted):

```javascript
const provided = req.headers['x-dsh-remote-token'] ?? url.searchParams.get('token') ?? '';
		if (provided !== auth.token) {
			res.writeHead(401, { 'content-type': 'application/jso
```

## 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:** dsh-jiuling-remote-desktop
- **Ecosystem:** npm
- **Version:** 1.0.7
- **License:** MIT
- **Version published:** 2026-10-15T17:56:33.217Z
- **Package first seen:** 2026-10-15T12:28:13.207Z
- **Package last seen:** 2026-10-22T08:07:25.562Z
- **Known versions:** 29
- **Latest version:** 1.0.41
- **Appeal under review:** No
- **Description:** DSH 远程目录（电脑端）：把本机 DSH 会话的事件流经 Cloudflare 隧道搬到手机，手机进入电脑目录并发起对话，公网只传文本。含激活码配对流程。
- **Maintainers:** jiuling
- **Keywords:** dshapp-plugin, dsh, dsh-plugin, deepseek-harness, remote, cloudflare-tunnel
- **Runtime engines:** node: \>=20
- **Artifact files:** 6
- **Artifact unpacked size:** 79,788 bytes
- **Artifact signatures:** 2
- **Attestations:** No

## References
- [HTML security report](<https://firewall.lpm.dev/npm/dsh-jiuling-remote-desktop/v/1.0.7>)
