Skill flagged — suspicious patterns detected
ClawHub Security flagged this skill as suspicious. Review the scan results before using.
Star Office UI
v1.0.0Star Office UI 一键化 Skill:帮主人快速部署像素办公室看板,支持多 Agent 加入、状态可视化、移动端查看与公网访问。
⭐ 2· 807·72 current·78 all-time
bydon@dponxiaodong
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
The code and SKILL.md match the described purpose: a multi-agent pixel office UI with endpoints for join/agent-push, a local backend (Flask), and a frontend. However there are oddities that are not necessary for a simple local demo: (1) convert_to_webp.py contains an absolute FRONTEND_DIR path (/root/.openclaw/workspace/...), (2) backend.run.sh expects a .venv path, and (3) the repo includes join-keys.json (fixed join keys) which the service relies on. These are plausible developer artifacts but are not strictly required by the user-facing feature and warrant caution.
Instruction Scope
SKILL.md tells the agent to git clone the repo and run the backend, plus to put 'memory/YYYY-MM-DD.md' in the parent directory so the backend will read it. The backend intentionally looks for a memory directory one level above the project root (MEMORY_DIR = ../memory). That means the service will read files outside the checked-out repo if present — a scope expansion that could access host data the user didn't expect. The instructions also recommend opening a Cloudflare Tunnel and include guidance to invite other agents (office-agent-push.py) — which is expected for a public demo but increases exposure. Overall the runtime instructions are functional but instruct the service to read a path outside the repo and to accept remote agent pushes, which should be considered before deployment.
Install Mechanism
No install spec is declared (instruction-only). SKILL.md instructs cloning a public GitHub repo and pip-installing backend/requirements.txt (flask). This is a common, low-risk pattern compared to remote binary downloads. No remote archive/extract URLs or obscure installers are used in the provided files.
Credentials
The skill declares no required environment variables or credentials, which matches its simple backend/frontend purpose. Despite that, several files contain hard-coded absolute paths (e.g., convert_to_webp.py uses /root/.openclaw/workspace), and run.sh expects a .venv under the project root; these are disproportionate to the stated function and could cause the scripts to access unexpected locations or fail. join-keys.json baked into the repo provides reusable join keys; if the server is made publicly reachable, those keys control who can join and should be rotated/removed for production.
Persistence & Privilege
The skill is not marked always:true and does not request elevated platform privileges. It writes/reads local state files (state.json, agents-state.json, join-keys.json) inside the project and a memory folder one level up — normal for an application of this type but another reason to run it in an isolated environment. It does not modify other skills or global agent settings.
What to consider before installing
High-level takeaways and recommended precautions before running:
- Behavior summary: This repo runs a local Flask backend and a static frontend to show a pixel office dashboard. It supports inviting remote agents (join/agent-push) and will read a 'memory' file for the "yesterday memo" feature.
- Main concerns to review before running:
1) Memory directory reads outside the repo: backend/app.py sets MEMORY_DIR to the folder one level above the project root (../memory). That means the service will open files outside the cloned repo if they exist. If you don't control that parent folder, sensitive files could be read. Put the project in an isolated directory or ensure ../memory is empty/controlled.
2) Hard-coded absolute paths and environment assumptions: convert_to_webp.py uses /root/.openclaw/workspace/frontend as the FRONTEND_DIR and backend/run.sh expects a .venv path. These scripts may fail or unexpectedly touch host paths if run as-is. Inspect and edit these paths or run in a container/VM.
3) Built-in join keys and public access: the repository includes join-keys.json and documentation describing reusable join keys. If you publish this service to the Internet (via Cloudflare Tunnel or reverse proxy) those keys control who can join and push state. Rotate or remove demo keys and add authentication if you intend to make it public.
4) Run in isolation: because the service listens on HTTP and accepts remote agent pushes, run it in a sandbox (container, VM, or throwaway machine) when testing. Avoid running as root and avoid exposing it to the public internet until you harden join/auth.
5) Inspect network logic before inviting others: review office-agent-push.py and any other scripts that perform HTTP requests to understand what data is transmitted, how agent IDs are handled, and whether any unexpected endpoints are contacted.
6) Art asset/licensing: README and docs declare art assets are non-commercial; respect those constraints if you redistribute.
- What would change this assessment: If you provide a modified version where MEMORY_DIR is inside the project, absolute /root paths are removed, join keys are not baked-in (or are randomized/require explicit configuration), and office-agent-push.py/network behavior is restricted/credentialed, the concerns reduce and the skill would be coherent for benign use. Conversely, if additional files show exfiltration or the agent-push scripts phone home to unknown servers, the verdict should be upgraded to malicious.
If you want, I can: (a) point to exact lines in files that set MEMORY_DIR and the /root path, (b) summarise office-agent-push.py network behavior, or (c) propose minimal edits to make the repo safer to run locally.Like a lobster shell, security has layers — review code before you run it.
latestvk971pwye9tkwj5364fajjhewad827174
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
