Back to skill

Security audit

Agent Reach

Security checks for vulnerabilities and agentic risk

Overview

The skill is not clearly malicious, but it asks the agent to install mutable remote software and handle browser session cookies across many platforms, so it needs careful review before use.

Install only if you trust the upstream repository and are comfortable with an agent installing multiple internet tools, storing platform cookies, and using authenticated accounts. Prefer a sandbox or secondary accounts, avoid pasting primary-account cookies into chat, review exactly what agent-reach installs, and require explicit confirmation before any posting, cookie extraction, proxy configuration, or persistent config change.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:33
Finding

Mutable Remote Package Is Downloaded and Executed Without Integrity Verification

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 33-36
Vulnerability Type: Remote payload retrieval and execution through an unpinned external dependency
Risk Level: High

bash
## Setup

```bash
pip install https://github.com/Panniantong/agent-reach/archive/main.zip
agent-reach install --env=auto
agent-reach doctor
text

### Technical Analysis

The setup instructions install a Python package directly from the mutable `main` branch of a personal GitHub repository. The source is not pinned to an immutable commit or verified with a cryptographic hash or signature.

Installing a Python source package may execute attacker-controlled build or installation logic. Immediately afterward, the newly installed `agent-reach` command is invoked with `install --env=auto`. According to the Skill, this command detects the host environment and installs several additional components, including Node.js, mcporter, xreach CLI, GitHub CLI, yt-dlp, and feedparser. Consequently, the effective executable payload and its transitive dependencies can change after this Skill has been reviewed.

This behavior exceeds minimum privilege because the Skill delegates broad software installation and environment modification to mutable remote code instead of installing only reviewed, pinned components required for a selected platform.

### Attack Path

1. An attacker compromises the repository owner, the repository, or an upstream dependency selected by its installer.
2. The attacker modifies the `main` branch or package installation logic with a malicious payload.
3. A user or Agent follows the documented setup command.
4. `pip` downloads the current archive and runs applicable package build or installation logic.
5. The resulting `agent-reach` executable runs `install --env=auto`, enabling further downloads and execution.
6. Malicious code executes with the permissions of the user running the Agent and can access that user's fi
...[truncated 616 chars]
Remediation
View remediation

Remediation Suggestions

  • Replace the mutable main.zip installation with a reviewed, versioned release from a trusted package registry.
  • Pin the package to an immutable version or commit and verify it using an approved cryptographic hash or signature.
  • Maintain a lockfile or equivalent manifest containing pinned versions and hashes for all transitive dependencies.
  • Review and document every component installed by agent-reach install --env=auto.
  • Avoid automatic environment-wide installation. Install only the dependencies needed for the platform explicitly requested by the user.
  • Present the planned package and system changes and obtain explicit user confirmation before execution.
  • Run installation and platform tools in a sandbox or container with restricted filesystem and network access.
  • Do not grant administrative privileges unless a specific, documented component strictly requires them.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:52
Finding

Authentication Cookies and Proxy Credentials Are Exposed Through Agent Context and Command-Line Arguments

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 52-54 and 67-75
Vulnerability Type: Insecure handling of plaintext session credentials
Risk Level: Medium

bash
agent-reach configure twitter-cookies "auth_token=xxx; ct0=yyy"
agent-reach configure proxy http://user:pass@ip:port
agent-reach configure --from-browser chrome    # auto-extract cookies from local browser
markdown
### Cookie Import (Universal for all login-required platforms)

> **Important:** Platforms using cookie login have account ban risks. Remind users to use a **dedicated secondary account**.

For all platforms requiring cookies (Twitter, XiaoHongShu, etc.), **prefer Cookie-Editor import**:

1. User logs into the platform in their browser
2. Install [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) Chrome extension
3. Click extension → Export → Header String
4. Send the exported string to the Agent

Technical Analysis

The Skill instructs users to provide complete session-cookie header strings to the Agent and demonstrates passing authentication cookies and proxy credentials directly as command-line arguments. Full session cookies can act as bearer credentials and may allow account access without knowledge of the user's password.

Secrets entered this way can be retained in Agent transcripts, shell history, terminal logs, process listings, telemetry, or diagnostic output. The --from-browser chrome option additionally grants an externally installed tool access to browser cookie storage, but the Skill does not define domain restrictions, user confirmation for each credential source, redaction requirements, retention limits, encrypted storage, file permissions, or secure deletion.

Credential use is relevant to accessing authenticated platforms, but sending complete credentials through Agent context and command-line arguments is not the least-privileged method. T ...[truncated 1595 chars]

Remediation
View remediation

Remediation Suggestions

  • Do not instruct users to paste full authentication cookies, proxy passwords, or other bearer credentials into Agent conversations.
  • Collect secrets through a local interactive prompt that disables terminal echo and bypasses shell history.
  • Use an operating-system credential store or dedicated secret manager rather than plaintext configuration.
  • Avoid command-line arguments for secrets; use protected file descriptors, standard input, or narrowly permissioned temporary secret files.
  • Restrict browser-cookie extraction to explicitly selected browser profiles and domains, and obtain informed confirmation immediately before access.
  • Apply restrictive permissions to credential storage, such as user-only access, and document the exact storage location and format.
  • Redact secrets from logs, diagnostics, error messages, process output, and Agent transcripts.
  • Define credential retention and secure-deletion procedures and provide a command to revoke or remove stored credentials.
  • Prefer scoped, revocable API tokens or OAuth authorization where supported.
  • Warn users that session cookies can provide account access and recommend revoking sessions immediately if disclosure is suspected.
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
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (9)

YARA rule 'agent_skill_remote_bootstrap_execution': Remote script or code download followed by execution/bootstrap installation [agent_skills]

High
Category
YARA Match
Confidence
98% confidence
Finding

pip install directly from a GitHub archive executes unpinned remote code from a mutable branch without integrity verification. This is a classic supply-chain risk: a compromised repository, branch update, or man-in-the-middle at the source can lead to arbitrary code execution during installation.

Content

Scanner excerpt · SKILL.md (reported line 34)May include surrounding context.

iles, clone repos, or write output in the agent workspace.** Use these directories instead:

PurposeDirectory
Temporary output (subtitles, downloads)/tmp/
Upstream tool repos~/.agent-reach/tools/
Config & tokens~/.agent-reach/

Violating this will pollute the user's workspace and degrade their agent experience over time.

Setup

bash
pip install https://github.com/Panniantong/agent-reach/archive/main.zip
agent-reach install --env=auto
agent-reach doctor

install auto-detects your environment and installs core dependencies (Node.js, mcporter, xreach CLI, gh CLI, yt-dlp, feedparser). Run doctor to see what's active.

Management

bash
agent-reach doctor        # channel status overview
agent-reach watch         # quick health + update check
agent-reach check-update  # check for new versions

Configure channels

bash
agent-reach configure twitter-cookies "auth_token=xxx; ct0=yyy"
agent-reach configure p

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill recommends automatic browser cookie extraction but does not provide a strong warning that this accesses highly sensitive authenticated session material. Browser cookies can grant direct account access and may expose unrelated sessions, so normalizing automated extraction materially increases credential-theft and account-compromise risk.

Content

No source excerpt is available for this finding.

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Confidence
99% confidence
Finding

The documented use of --cookies-from-browser chrome extracts authenticated browser cookies, which are effectively bearer tokens for user sessions. In the context of a skill with broad platform access, this behavior is highly sensitive and can enable credential harvesting, account takeover, and cross-service abuse if mishandled or over-scoped.

Content

Scanner excerpt · SKILL.md (reported line 131)May include surrounding context.

--skip-download -o "/tmp/%(id)s" "URL"

Then read the .vtt file

Search (yt-dlp ytsearch)

yt-dlp --dump-json "ytsearch5:query"

If "no JS runtime" warning: ensure Node.js is installed, then run:

mkdir -p ~/.config/yt-dlp && echo "--js-runtimes node" >> ~/.config/yt-dlp/config

text

### Bilibili (yt-dlp)

> Server IPs may be blocked by Bilibili (412 error). Recommend using proxy or add `--cookies-from-browser chrome`.

```bash
# Get video metadata
yt-dlp --dump-json "https://www.bilibili.com/video/BVxxx"

# Download subtitles
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --convert-subs vtt --skip-download -o "/tmp/%(id)s" "URL"

# If blocked (412 / login required):
yt-dlp --cookies-from-browser chrome --dump-json "URL"

Reddit (JSON API)

bash
# Read a subreddit
curl -s "https://www.reddit.com/r/python/hot.json?limit=10" -H "User-Agent: agent-reach/1.0"

# Read a post with comments
curl -s "https://www.reddit.com/r/python/comments/POST_ID.json" -H "U

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill includes social-media publishing commands even though its stated purpose is only to install and configure channel access. Publishing is a materially higher-risk capability because it can perform external side effects under the user's identity, enabling accidental or unauthorized posting if the skill is invoked or reused too broadly.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Broad triggers like configure, install, or add channel are likely to match many unrelated user requests. For a skill that can install software, configure proxies, import cookies, and enable external tooling, accidental invocation significantly raises the chance of unauthorized setup actions or over-privileged execution.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest presents the skill as an installer/configurator, but most of the body instructs the agent to directly read, search, scrape, and interact with many external platforms. This scope mismatch can cause the skill to be invoked in contexts where users expect setup-only behavior, yet it enables broad networked data access and operational actions beyond that purpose.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

Line L094 says agent-reach is only an installer/config tool and does not have read, search, or content-fetching commands. Yet the surrounding documentation presents the skill as a practical way to search and read content across many platforms immediately after install, creating a clear intent-level contradiction between the limiting statement and the documented behavior encouraged by the file.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
81% confidence
Finding

The instruction appends configuration into ~/.config/yt-dlp/config, creating persistent state outside the immediate task. While not inherently malicious, persistence changes future tool behavior in a way that may be opaque to users and can outlive consent, which is risky in agent environments that should minimize hidden side effects.

Content

Scanner excerpt · SKILL.md (reported line 126)May include surrounding context.

yt-dlp --dump-json "ytsearch5:query"

If "no JS runtime" warning: ensure Node.js is installed, then run:

mkdir -p ~/.config/yt-dlp && echo "--js-runtimes node" >> ~/.config/yt-dlp/config

text

### Bilibili (yt-dlp)

Rp1

Medium
Category
MCP Rug Pull
Confidence
85% confidence
Finding

The skill instructs use of npx mcporter without pinning a version or integrity-verified source. That allows execution of whatever package version is current at invocation time, increasing supply-chain risk and making behavior non-reproducible if the upstream package is compromised or changed.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.