扫描报告
15 /100
pixel-agents
Real-time pixel art ops dashboard for OpenClaw deployments
Legitimate OpenClaw monitoring dashboard with documented shell execution for build/deploy and remote service management via SSH. No hidden malicious behavior detected.
可以安装
Accept for use. If remote agents use SSH password authentication, consider switching to key-based auth for better security.
安全发现 2 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Plaintext SSH passwords in remote agent config 凭证窃取 | server/configLoader.ts:26 |
| 低危 | execSync for systemctl commands 权限提升 | server/services.ts:47 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | READ | READ | ✓ 一致 | Reads ~/.openclaw/agents and config files |
| 网络访问 | READ | READ | ✓ 一致 | Curl check to gateway URL |
| 命令执行 | WRITE | WRITE | ✓ 一致 | npm install/build, systemctl, sshpass/ssh |
| 环境变量 | NONE | READ | ✓ 一致 | Reads ENV_VAR placeholders in config |
| 技能调用 | NONE | NONE | — | No skill invocation detected |
| 剪贴板 | NONE | NONE | — | No clipboard access |
| 浏览器 | NONE | NONE | — | No browser automation |
| 数据库 | NONE | NONE | — | No direct database access |
10 项发现
中危 外部 URL 外部 URL
https://openclaw.ai README.md:3 中危 外部 URL 外部 URL
https://opencollective.com/babel package-lock.json:91 中危 外部 URL 外部 URL
https://opencollective.com/express package-lock.json:1425 中危 外部 URL 外部 URL
https://opencollective.com/browserslist package-lock.json:1436 中危 外部 URL 外部 URL
https://tidelift.com/funding/github/npm/browserslist package-lock.json:1440 中危 外部 URL 外部 URL
https://tidelift.com/funding/github/npm/caniuse-lite package-lock.json:1512 中危 外部 URL 外部 URL
https://paulmillr.com/funding/ package-lock.json:1563 中危 钱包地址 加密货币钱包地址
347pnakNevPmiHhNmZ2HbFA76w package-lock.json:2257 中危 外部 URL 外部 URL
https://opencollective.com/postcss/ package-lock.json:2378 中危 外部 URL 外部 URL
https://tidelift.com/funding/github/npm/postcss package-lock.json:2382 目录结构
81 文件 · 701.4 KB · 23240 行 TypeScript 66f · 16453L
JSON 7f · 6129L
Markdown 4f · 294L
Shell 1f · 222L
CSS 1f · 67L
JavaScript 1f · 62L
HTML 1f · 13L
├─
▾
bin
│ └─
pixel-agents.cjs
JavaScript
├─
▾
public
│ └─
▾
assets
│ ├─
ASSET-LICENSE.md
Markdown
│ └─
default-layout.json
JSON
├─
▾
server
│ ├─
assetLoader.ts
TypeScript
│ ├─
config.ts
TypeScript
│ ├─
configLoader.ts
TypeScript
│ ├─
hardware.ts
TypeScript
│ ├─
index.ts
TypeScript
│ ├─
openclawParser.ts
TypeScript
│ ├─
services.ts
TypeScript
│ ├─
sessionWatcher.ts
TypeScript
│ ├─
setupWizard.ts
TypeScript
│ ├─
spawner.ts
TypeScript
│ └─
version.ts
TypeScript
├─
▾
skill
│ ├─
▾
scripts
│ │ └─
setup.sh
Shell
│ └─
SKILL.md
Markdown
├─
▾
src
│ ├─
▾
components
│ │ ├─
ActivityBubble.tsx
TypeScript
│ │ ├─
ActivityTicker.tsx
TypeScript
│ │ ├─
AgentLabels.tsx
TypeScript
│ │ ├─
BottomToolbar.tsx
TypeScript
│ │ ├─
BreakerPanel.tsx
TypeScript
│ │ ├─
ConversationHeat.tsx
TypeScript
│ │ ├─
DayNightCycle.tsx
TypeScript
│ │ ├─
DebugView.tsx
TypeScript
│ │ ├─
FireAlarm.tsx
TypeScript
│ │ ├─
HamRadio.tsx
TypeScript
│ │ ├─
NickDesk.tsx
TypeScript
│ │ ├─
OfficeDoor.tsx
TypeScript
│ │ ├─
ServerRack.tsx
TypeScript
│ │ ├─
SessionInfoPanel.tsx
TypeScript
│ │ ├─
SettingsModal.tsx
TypeScript
│ │ ├─
SpawnButton.tsx
TypeScript
│ │ ├─
SpawnChat.tsx
TypeScript
│ │ └─
ZoomControls.tsx
TypeScript
│ ├─
▾
hooks
│ │ ├─
useEditorActions.ts
TypeScript
│ │ ├─
useEditorKeyboard.ts
TypeScript
│ │ ├─
useExtensionMessages.ts
TypeScript
│ │ ├─
useOpenClawEvents.ts
TypeScript
│ │ └─
useSpawnedSessions.ts
TypeScript
│ ├─
▾
office
│ │ ├─
▾
components
│ │ │ ├─
index.ts
TypeScript
│ │ │ ├─
OfficeCanvas.tsx
TypeScript
│ │ │ └─
ToolOverlay.tsx
TypeScript
│ │ ├─
▾
editor
│ │ │ ├─
editorActions.ts
TypeScript
│ │ │ ├─
editorState.ts
TypeScript
│ │ │ ├─
EditorToolbar.tsx
TypeScript
│ │ │ └─
index.ts
TypeScript
│ │ ├─
▾
engine
│ │ │ ├─
characters.ts
TypeScript
│ │ │ ├─
gameLoop.ts
TypeScript
│ │ │ ├─
index.ts
TypeScript
│ │ │ ├─
matrixEffect.ts
TypeScript
│ │ │ ├─
officeState.ts
TypeScript
│ │ │ └─
renderer.ts
TypeScript
│ │ ├─
▾
layout
│ │ │ ├─
furnitureCatalog.ts
TypeScript
│ │ │ ├─
index.ts
TypeScript
│ │ │ ├─
layoutSerializer.ts
TypeScript
│ │ │ └─
tileMap.ts
TypeScript
│ │ ├─
▾
sprites
│ │ │ ├─
index.ts
TypeScript
│ │ │ ├─
spriteCache.ts
TypeScript
│ │ │ └─
spriteData.ts
TypeScript
│ │ ├─
colorize.ts
TypeScript
│ │ ├─
floorTiles.ts
TypeScript
│ │ ├─
toolUtils.ts
TypeScript
│ │ ├─
types.ts
TypeScript
│ │ └─
wallTiles.ts
TypeScript
│ ├─
apiBase.ts
TypeScript
│ ├─
App.tsx
TypeScript
│ ├─
constants.ts
TypeScript
│ ├─
index.css
CSS
│ ├─
main.tsx
TypeScript
│ ├─
notificationSound.ts
TypeScript
│ └─
vscodeApi.ts
TypeScript
├─
dashboard.config.example.json
JSON
├─
index.html
HTML
├─
package-lock.json
JSON
├─
package.json
JSON
├─
README.md
Markdown
├─
SKILL.md
Markdown
├─
tsconfig.app.json
JSON
├─
tsconfig.json
JSON
├─
tsconfig.node.json
JSON
└─
vite.config.ts
TypeScript
依赖分析 5 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
express | ^5.1.0 | npm | 否 | Acceptable stability risk |
react | ^19.2.0 | npm | 否 | Latest major version |
ws | ^8.18.0 | npm | 否 | Well-maintained websocket library |
tsx | ^4.19.0 | npm | 否 | TypeScript execution |
chokidar | ^4.0.0 | npm | 否 | File watching |
安全亮点
✓ No base64-encoded payloads or obfuscated code found
✓ No data exfiltration or C2 communication patterns detected
✓ No credential harvesting beyond documented remote agent SSH access
✓ No suspicious network connections to unknown IPs
✓ No reverse shell, RCE, or malicious payload delivery
✓ Dependencies are well-known, mainstream packages
✓ SSH commands are scoped to systemctl for specific services only
✓ Config supports environment variable substitution for secrets
✓ No hidden functionality in HTML comments or other concealment