Back to skill

Security audit

Angus Bounty Hunter

Security checks for vulnerabilities and agentic risk

Overview

This skill is a legitimate smart-contract scanning helper, but its default scan path can run code from untrusted repositories on the user's machine.

Install only if you will run scans inside a disposable container or VM with no sensitive host credentials, wallet files, SSH agents, or cloud tokens available. Avoid scanning arbitrary repositories directly on your host, and review or disable the npm/pip install steps before use.

Vulnerability Patterns
  • 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
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T08 · Insecure Dependencies

Error
Location
scripts/scan.sh:39
Finding

Automatic Execution of Dependencies from Untrusted Target Repositories

Content
View full analysis
/dev/null || true [ -f "requirements.txt" ] && pip3 install -r requirements.txt --quiet 2>/dev/null || true ``` ### Technical Analysis The script accepts an arbitrary repository URL, clones that repository, and then automatically runs its dependency installation procedures. The cloned repository must therefore be treated as attacker-controlled input. Running `npm install` can execute package lifecycle scripts such as `preinstall`, `install`, and `postinstall`. These scripts can contain arbitrary commands. Similarly, installing Python dependencies can execute attacker-controlled build backends, source-distribution build logic, or legacy setup code. The dependencies are not validated against an allowlist, isolated from the host, or required to use cryptographic hashes. The installation commands run with the full permissions of the user who invoked the Skill. Suppressing errors and continuing with `|| true` also reduces visibility into malicious or unexpected installation behavior. Dependency installation may sometimes be necessary to compile a target, but automatically performing it on the host exceeds the minimum privileges required for static source analysis. ### Attack Path 1. An attacker creates or compromises a smart-contract repository. 2. The repository contains one of the following: - A malicious npm lifecycle script in `package.json`. - A dependency that executes malicious npm lifecycle code. - A malicious Python source package or build backend referenced by `requirements.txt`. 3. The attacker persuades a user to scan the repository or submits it as a purported bounty target. 4. The user runs: ```bash bash scripts/scan.sh ...[truncated 901 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/triage.sh:12
Finding

Python Code Injection Through an Attacker-Controlled Findings Filename

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (5)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared description frames the skill as a bounded bug-bounty scanner, but the documented behavior is broader: it accepts arbitrary GitHub repo URLs and performs clone/install/scan actions. This mismatch is risky because users or orchestration systems may trust the narrower description while the skill actually enables more powerful code-fetching and environment-modifying behavior than advertised.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · scripts/triage.sh (reported line 51)May include surrounding context.

sh
PYEOF

# If Ollama is available, ask it to rate exploitability
if curl -s http://127.0.0.1:11434/api/tags >/dev/null 2>&1; then
  echo "--- Local LLM Triage ---"
  FINDINGS_TEXT=$(python3 -c "
import json

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill advertises shell-driven workflows (bash scripts/scan.sh, triage.sh, poc-template.sh) but declares no permissions or allowed-tools scope. That leaves execution boundaries undefined, which is dangerous because the workflow includes cloning arbitrary repositories and likely running package/compiler setup, increasing the chance of unintended command execution or over-broad agent capabilities.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script installs dependencies directly from an untrusted target repository via npm and pip during the scanning workflow. Package install hooks, malicious setup scripts, dependency confusion, or poisoned requirement entries can execute arbitrary code on the analyst's machine or CI runner, turning a passive scan into active execution of attacker-controlled content.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/triage.sh (reported line 51)May include surrounding context.

sh
PYEOF

# If Ollama is available, ask it to rate exploitability
if curl -s http://127.0.0.1:11434/api/tags >/dev/null 2>&1; then
  echo "--- Local LLM Triage ---"
  FINDINGS_TEXT=$(python3 -c "
import json

Static analysis

No suspicious patterns detected.