ui-agent@1.0.0
BLOCKED· static onlyPublisher claims: "Universal UI automation for browsers and desktops. Chrome DevTools Protocol + native APIs. 15/15 verified tests." Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Is [email protected] safe to install?
KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-15 and scored it 45/100 (Blocked). Do not install it: the sandbox observed behaviour consistent with credential theft, exfiltration or persistence. Notable findings: document.cookie access; Privileged sudo command; OS command execution function call detected. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
subprocess.run(["xdotool", "type", text], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.2. `document.cookie =` writes directly to browser memory (instant, no disk needed)Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.proc = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["ydotool", "type", text], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["xdotool", "key", "ctrl+shift+v"])Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.sudo apt-get install gnome-screenshot scrot grimFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.os.system(f"pkill -f 'remote-debugging-port={CDP_PORT}' 2>/dev/null")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.self._chrome = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raise RuntimeError("No screenshot tool: sudo apt-get install scrot")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.subprocess.run(["xclip", ...])Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.sudo apt-get install -y ydotoolFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(["pgrep", "-f", "chrome"])Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.sudo apt-get install -y scrot grimFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.js = f"document.cookie = '{cookie['name']}={cookie['value']}; path=/; secure; samesite=none';"Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.r = subprocess.run(["pgrep", "-f", f"Xvfb {DISPLAY_XVFB}"], capture_output=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.raise RuntimeError("Xvfb not installed: sudo apt-get install xvfb")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.sudo apt-get install -y \Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.sudo apt-get install python3-gi gir1.2-atspi-2.0Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.f"Install with: sudo apt-get install {app}"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.subprocess.run(["pkill", "-x", "nautilus"], capture_output=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.dead = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.5. Restore via JS (document.cookie = ...)Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.pid_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.running = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(cmd, env=env, capture_output=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.js_cmd = f"document.cookie = '{COOKIE_NAME}={COOKIE_VALUE}; path=/; secure; samesite=none';"Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.js_set = f"document.cookie = '{name}={value}; path=/; secure; samesite=none';"Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.across Chrome kill and relaunch on VirtualBox.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
35 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- OS command execution function call detected≈ +9 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Unclaimed publisher≈ +8 on the totalClaim nimaansari: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- document.cookie access≈ +4 on the totalReplace encoded or assembled strings with plain literals and remove undeclared network calls.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.