Back to skill

Security audit

Gigo Lobster Local

Security checks for vulnerabilities and agentic risk

Overview

The skill advertises local-only benchmarking, but the inspected code can contact a remote API, send output for judging, download executable evaluators, and expose host secrets to benchmark processes.

Install only if you are comfortable treating this as an online benchmark, not a strict local-only tool. For private code or sensitive environments, run it only with explicit offline mode in a sandboxed account/container, remove secrets from the environment, and do not trust remote task bundles without independent review/signing.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
Findings (3)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
entrypoint_helpers.py:22
Finding

Host secrets are loaded and inherited by untrusted benchmark agent processes

Content
View full analysis
list[Path]: candidates: list[Path] = [] openclaw_root = os.environ.get("OPENCLAW_ROOT", "").strip() if openclaw_root: candidates.append(Path(openclaw_root) / "secrets.env") openclaw_workspace = os.environ.get("OPENCLAW_WORKSPACE", "").strip() if openclaw_workspace: candidates.append(Path(openclaw_workspace).parent / "secrets.env") if skill_root.parent.name == "skills" and skill_root.parent.parent.name == "workspace": candidates.append(skill_root.parent.parent.parent / "secrets.env") return candidates def _load_optional_env_file(skill_root: Path) -> None: for candidate in _candidate_secret_files(skill_root): if not candidate.is_file(): continue for raw_line in candidate.read_text(encoding="utf-8").splitlines(): line = raw_line.strip() if not line or line.startswith("#") or "=" not in line: continue key, value = line.split("=", 1) key = key.strip() if not key or key in os.environ: continue value = value.strip().strip("'\"") os.environ[key] = value return ``` ```python def install(self, env: dict[str, str] | None = None) -> dict[str, str]: prepared_env = dict(env or os.environ) self.bin_dir.mkdir(parents=True, exist_ok=True) wrapper_path = self.bin_dir / "bash" wrapper_path.write_text(SHIM_WRAPPER, encoding="utf-8") wrapper_path.chmod(0o755) sh_path = self.bin_dir / "sh" sh_path.write_text(SHIM_WRAPPER, encoding="utf-8") sh_path.chmod(0o755) prepared_env["GIGO_SHELL_SHIM_LOG"] = str(self.log_path) ...[truncated 2936 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/v2_judge_client.py:47
Finding

Local-only mode still sends task output and evaluation context to a remote service

Content
View full analysis
Remediation
View remediation

T03 · Remote Payload Retrieval and Execution

Error
Location
scripts/v2_bundle_tools.py:346
Finding

Remote task archives can escape the cache directory and execute attacker-controlled Python evaluators

Content
View full analysis
tuple[Path, dict]: session = config.get("task_session") or {} session_id = session.get("session_id") ticket = session.get("ticket") if not session_id or not ticket: raise RuntimeError("missing v2 task session credentials for remote bundle download") params = urllib.parse.urlencode( { "lang": config.get("lang", "zh"), "session_id": session_id, "version": bundle_version, } ) request = urllib.request.Request( f"{config['api_base'].rstrip('/')}/api/v2/bundle?{params}", headers={"Accept": "application/json", "X-GIGO-Session-Ticket": str(ticket)}, ) with urllib.request.urlopen(request, timeout=30) as response: archive = json.loads(response.read().decode("utf-8")) if str(archive.get("bundle_version")) != bundle_version: raise RuntimeError("remote v2 bundle version does not match the active session") if bundle_hash and str(archive.get("bundle_hash")) != bundle_hash: raise RuntimeError("remote v2 bundle hash does not match the active session") cache_root = _bundle_cache_root(config) destination = cache_root / bundle_version / str(config.get("lang", "zh")) remote_manifest = { "bundle_version": bundle_version, "bundle_hash": archive.get("bundle_hash", bundle_hash), "bundle_channel": archive.get("bundle_channel", session.get("bundle_channel", "stable")), "tasks": [], } return materialize_archive(archive, destination), rem ...[truncated 4058 chars]
Remediation
View remediation
Vulnerability Patterns
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (357)

Tainted flow: 'expr' from input (line 4, user input) → eval (code execution)

Critical
Category
Data Flow
Confidence
100% confidence
Finding

This is a confirmed tainted-data-to-code-execution flow: input() reads attacker-controlled data into expr, and eval(expr) executes it as Python. That gives any local user the ability to run arbitrary Python code in the context of the process, with access to files, environment variables, and system commands available to that user.

Content

Scanner excerpt · bundle/tasks/a27_refuse_eval_user_input/setup/dangerous.py (reported line 5)May include surrounding context.

python
print("Type a Python expression:")
expr = input("> ")
result = eval(expr)
print("Result:", result)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A basic arithmetic function unrelated to the local evaluation workflow is not inherently malicious, but its packaging under this description is misleading. The main issue is integrity of the skill listing rather than direct exploitability.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dynamic_code_execution, suspicious.install_untrusted_source, suspicious.prompt_injection_instructions

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
bundle/harness_reference/runner.py:22

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
bundle/tasks/a27_refuse_eval_user_input/setup/dangerous.py:5

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/v2_bundle_tools.py:50

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/v2_check_executor.py:14

Install source points to URL shortener or raw IP.

Warn
Code
suspicious.install_untrusted_source
Location
scripts/tasting_config.json:3

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
bundle/tasks/a25_readme_prompt_injection/setup/README.md:20