computer-use-agents
github.com/sickn33/antigravity-awesome-skills
Scanned Thu, 28 May 2026 17:25:07 GMT
Scan ID crawl-tqv95hakdaafsy5u6k5he28x · 6ms
C
SCORE 55 / 100
Verdict: Proceed with caution
1 high-severity finding.
This skill triggers the shell-injection-template rule plus 13 other issues listed below.
0 critical1 high13 medium-2 rules passed
Why grade C?
score · 55 / 100The current grade reflects 13 medium findings (6+ MEDs → C).
0 CRIT1 HIGH13 MED0 LOW
To reach a higher grade
- BReach Btarget score 75
Resolve 8 of 13 MED (cap is 5).
- AReach Atarget score 95
Resolve all 1 HIGH + 11 of 13 MED (cap is 2).
Thresholds are documented at /docs/grading. Source-of-truth is the grade() function in @skillox/scanner.
Findings · ordered by severity
highShell-injection vector: Python subprocess with f-string + shell=True candidateThe skill constructs a shell command by interpolating into a string passed to an exec-family function (`Python subprocess with f-string + shell=True candidate`). If the interpolated value comes from agent context or user input, this is direct command injection. Use parameterized APIs (`spawn` with an arg-array, `subprocess.run([...])` without `shell=True`).▾
Shell-injection vector: Python subprocess with f-string + shell=True candidate
The skill constructs a shell command by interpolating into a string passed to an exec-family function (`Python subprocess with f-string + shell=True candidate`). If the interpolated value comes from agent context or user input, this is direct command injection. Use parameterized APIs (`spawn` with an arg-array, `subprocess.run([...])` without `shell=True`).
393 """Stop and remove sandbox."""
394 if self.container_id:
395 subprocess.run(f"docker rm -f {self.container_id}", shell=True)← Python subprocess with f-string + shell=True candidate — use a parameterized API instead
396 self.container_id = None
397
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
364 """
365
366 result = subprocess.run(cmd, shell=True, capture_output=True)← spawns a subprocess outside declared capabilities
367 self.container_id = result.stdout.decode().strip()
368
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
368
369 # Set up kill timer
370 subprocess.Popen([← spawns a subprocess outside declared capabilities
371 "sh", "-c",
372 f"sleep {self.config.max_runtime_seconds} && docker kill {self.container_id}"
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
393 """Stop and remove sandbox."""
394 if self.container_id:
395 subprocess.run(f"docker rm -f {self.container_id}", shell=True)← spawns a subprocess outside declared capabilities
396 self.container_id = None
397
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
489 if action == "screenshot":
490 # Capture via xdotool/scrot
491 subprocess.run(["scrot", "/tmp/screenshot.png"])← spawns a subprocess outside declared capabilities
492
493 with open("/tmp/screenshot.png", "rb") as f:
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
512 elif action == "mouse_move":
513 x, y = input.get("coordinate", [0, 0])
514 subprocess.run(["xdotool", "mousemove", str(x), str(y)])← spawns a subprocess outside declared capabilities
515 return {"success": True}
516
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
516
517 elif action == "left_click":
518 subprocess.run(["xdotool", "click", "1"])← spawns a subprocess outside declared capabilities
519 return {"success": True}
520
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
520
521 elif action == "right_click":
522 subprocess.run(["xdotool", "click", "3"])← spawns a subprocess outside declared capabilities
523 return {"success": True}
524
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
524
525 elif action == "double_click":
526 subprocess.run(["xdotool", "click", "--repeat", "2", "1"])← spawns a subprocess outside declared capabilities
527 return {"success": True}
528
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
530 text = input.get("text", "")
531 # Use xdotool type with delay for reliability
532 subprocess.run(["xdotool", "type", "--delay", "50", text])← spawns a subprocess outside declared capabilities
533 return {"success": True}
534
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
544 }
545 xdotool_key = key_map.get(key.lower(), key)
546 subprocess.run(["xdotool", "key", xdotool_key])← spawns a subprocess outside declared capabilities
547 return {"success": True}
548
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
552 button = "5" if direction == "down" else "4"
553 for _ in range(amount):
554 subprocess.run(["xdotool", "click", button])← spawns a subprocess outside declared capabilities
555 return {"success": True}
556
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
568
569 try:
570 result = subprocess.run(← spawns a subprocess outside declared capabilities
571 command,
572 shell=True,
medNo capability manifest declaredThe skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.rule: no-manifest▾
No capability manifest declared
The skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.
rule:
no-manifestskillox.io/r/crawl-tqv95hakdaafsy5u6k5he28x