Back to skill

Security audit

Gigo Lobster Resume

Security checks for vulnerabilities and agentic risk

Overview

This benchmark skill is functional, but it asks for more trust than its resume-focused description clearly explains, including default upload, workspace secret loading, and unsandboxed remote evaluator execution.

Review this before installing. Run it only in an isolated workspace or container without sensitive secrets.env values, prefer a local/offline or explicit skip-upload mode when possible, and assume benchmark responses, telemetry, and possibly task output can be sent to api.agent-gigo.com. Do not run it from an account or workspace that contains credentials or private files you would not expose to a third-party benchmark service.

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 DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (5)

T03 · Remote Payload Retrieval and Execution

Error
Location
scripts/v2_check_executor.py:8
Finding

Unauthenticated Remote Task Bundles Execute Arbitrary 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), remote_manifest ``` The downloaded bundle's evaluator is subsequently imported and executed: `` ...[truncated 2341 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/v2_bundle_tools.py:337
Finding

Remote Archive Paths Permit Writes Outside the Bundle Cache

Content
View full analysis
Path: if destination_root.exists(): shutil.rmtree(destination_root) destination_root.mkdir(parents=True, exist_ok=True) for item in payload.get("files", []): target = destination_root / str(item["path"]) target.parent.mkdir(parents=True, exist_ok=True) encoding = str(item.get("encoding", "utf-8")) if encoding == "base64": target.write_bytes(base64.b64decode(str(item["content"]))) else: target.write_text(str(item["content"]), encoding="utf-8") return destination_root ``` ### Technical Analysis The extraction routine directly joins the remotely supplied `item["path"]` to `destination_root`. It does not reject: - Absolute paths. - Parent-directory components such as `../`. - Resolved paths outside the intended cache. - Paths that traverse through symlinks. `Path` joining does not itself enforce containment. An absolute archive entry can replace the destination entirely, while a path containing sufficient `..` components can escape the cache. The method then creates parent directories and writes attacker-controlled bytes to the resulting location. The use of Base64 is normal binary transport and is not itself malicious. The vulnerability is that decoded or textual content is written to an unvalidated remote-controlled path. ### Attack Path 1. The remote API causes the client to download a new v2 task archive. 2. The archive includes an entry such as `../../../../user-controlled-target` or an absolute user-writable path. 3. `materialize_archive()` combines that path with the cache directory without validation. 4. `target.parent.mkdir()` creates any missing parent directories. 5. `write_ ...[truncated 606 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
entrypoint_helpers.py:22
Finding

Workspace Secrets Are Exposed to Unsandboxed Agent and Evaluator Execution

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 ``` The agent process inherits that environment and is launched through a shell: ```python env = shim.install() env.update( { "GIGO_TASK_WORKDIR": str(workdir), "GIGO_TASK_ID": task.id, "GIGO_EVAL_RUN_ID": self.run_id, "GIGO_AGENT_SESSION_ID": _safe_session_id(f"gigo-eval-{self.run_id}-{task.id}"), "GIGO_TASK_PROMP ...[truncated 3188 chars]
Remediation
View remediation

other

Warning
Location
run_resume.py:8
Finding

Complete Benchmark Responses Are Uploaded by Default Without Explicit Runtime Consent

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/runtime_bootstrap.py:168
Finding

Normal Execution Automatically Installs Dependencies Without Artifact Hash Verification

Content
View full analysis
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 (358)

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

Critical
Category
Data Flow
Confidence
100% confidence
Finding

This is a direct tainted-data-to-code-execution flow: input() reads attacker-controlled data into expr, and eval(expr) executes it as Python code. That creates an immediate remote code execution primitive with no validation, sandboxing, or privilege separation.

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
96% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The file presents itself as a benign resume/continue entrypoint, but the analysis indicates substantially different runtime behavior, including test execution, file inspection, scoring, shell use, and outbound judging/network activity. This kind of description-behavior mismatch is dangerous because it misleads operators and policy systems about what will actually run, reducing informed consent and making risky capabilities easier to hide behind an innocuous label.

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