Back to skill

Security audit

Admapix

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed AdMapix analytics helper that uses an external API and API key for its stated ad-intelligence purpose, with no evidence of hidden persistence, local data harvesting, or destructive behavior.

Install only if you trust AdMapix and are comfortable sending app, market, and competitor-analysis queries to api.admapix.com using your API key. Keep the API key scoped and private, avoid confidential prompts, and prefer a pinned or verified clawhub installer command rather than an unversioned npx command.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
README.md:17
Finding

Unpinned Package Execution in Installation Instructions

Content
View full analysis

Vulnerability Details

File Locations:

  • README.md, lines 17-21
  • README_CN.md, lines 17-21

Vulnerability Type: Unpinned third-party package execution
Risk Level: Medium

Vulnerable Code

README.md, lines 17-21:

markdown
## Install

```bash
npx clawhub install admapix
text

`README_CN.md`, lines 17-21:

```markdown
## 安装

```bash
npx clawhub install admapix
text

### Technical Analysis

The documented installation command invokes the npm-resolved `clawhub` package through `npx` without specifying an exact package version or verifying package integrity.

If the package is not already present locally, `npx` can retrieve it from the configured npm registry and execute its package entry point. Because no version, checksum, signature, lockfile, or trusted artifact reference is provided, the code executed by this command can change independently of the reviewed Skill repository.

This creates a supply-chain trust boundary: users are instructed to execute mutable third-party code that was not included in, and therefore could not be validated as part of, this audit. Exploitation would require compromise or malicious replacement of the upstream package, compromise of the configured package registry, or resolution of an unintended package. Interactive confirmation by some `npx` versions may reduce accidental execution but does not establish package authenticity.

### Attack Path

1. An attacker compromises the upstream `clawhub` npm package, its maintainer account, or a package registry used by the victim.
2. The attacker publishes a malicious version under the package name resolved by `npx`.
3. A user follows the installation instructions and runs:
   ```bash
   npx clawhub install admapix
  1. npx resolves and downloads the mutable package version from the configured registry.
  2. The downloaded package executes with the privileges of the user running the command.
  3. Malicious package code could access files available to that user ...[truncated 924 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the installer to a specifically reviewed version:

    bash
    npx clawhub@<audited-version> install admapix
    
  2. Publish the expected package version and trusted registry explicitly. Avoid relying on a user's potentially modified npm registry configuration.

  3. Prefer a lockfile-backed installation workflow or a signed, versioned release artifact.

  4. Publish cryptographic checksums or signatures for installer artifacts and document how users can verify them before execution.

  5. Review the pinned installer version and its transitive dependencies before recommending it.

  6. Advise users not to run the installation command with sudo or from an administrator shell.

  7. Update both README.md and README_CN.md so that all documented installation paths apply the same version pinning and verification controls.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (20)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

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

md
**Reuse data:** If the user asks follow-up questions about already-fetched data, analyze existing results first. Only make new API calls when needed.

## Output Guidelines

1. **Language consistency** — ALL output (headers, labels, insights, hints, errors, disclaimers) must match the user's detected language. See "Language Handling" section above.
2. **Route-appropriate output** — Don't force H5 links on analytical questions; don't dump tables for browsing

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The README instructs users to run npx clawhub install admapix without pinning a specific version of the package being fetched and executed. This creates a supply-chain risk: users may unknowingly execute a newer, compromised, or typosquatted package version at install time, and because this is an install command in documentation, it directly encourages code execution from the registry.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The README instructs users to run npx clawhub install admapix without pinning a specific package version. This causes execution of whatever version is current at install time, which creates a supply-chain risk: a compromised or maliciously updated package version could be fetched and executed on the user's machine. In a skill installation context, this is more dangerous because users are likely to copy-paste the command directly from documentation and may not review what code is being run.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill advertises very broad trigger terms such as app analysis, market analysis, rankings, downloads, and competitor analysis, which can overlap with many unrelated user requests and cause unintended invocation. This increases the chance that user prompts and business-sensitive queries are routed into this skill and then transmitted to an external service without the user clearly intending to use AdMapix.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The explicit hardcoded external domain at api.admapix.com confirms that the skill depends on a third-party network service for core operation. This creates confidentiality and governance risk because prompts and query metadata leave the local trust boundary whenever the skill is invoked.

Content

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

bash
# GET
curl -s "https://api.admapix.com/api/data/{endpoint}?{params}" \
  -H "X-API-Key: $SKILLBOSS_API_KEY"

# POST

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The explicit hardcoded external domain at api.admapix.com confirms that the skill depends on a third-party network service for core operation. This creates confidentiality and governance risk because prompts and query metadata leave the local trust boundary whenever the skill is invoked.

Content

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

bash
# GET
curl -s "https://api.admapix.com/api/data/{endpoint}?{params}" \
  -H "X-API-Key: $SKILLBOSS_API_KEY"

# POST

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The POST template indicates that arbitrary request bodies may be sent to the third-party API, expanding the amount and structure of user/context data that can be transmitted externally. In combination with autonomous multi-step orchestration, this increases the risk of sending more data than the user expects or than is necessary.

Content

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

md
-H "X-API-Key: $SKILLBOSS_API_KEY"

# POST
curl -s -X POST "https://api.admapix.com/api/data/{endpoint}" \
  -H "X-API-Key: $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{...}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The API docs explicitly support passing a delivery object containing externalUserId to an outbound service, but provide no privacy, minimization, or disclosure guidance. This can lead downstream implementations to transmit user identifiers to a third-party API without consent review, purpose limitation, or logging controls.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/api-creative.md (reported line 122)May include surrounding context.

md
"playHtmlFp": [],
      "playHtmlUrl": [],
      "demoadCnt": 1,
      "appList": [
        {
          "id": "6498883328",
          "cnt": null,

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/api-creative.md (reported line 139)May include surrounding context.

md
"playHtmlFp": [],
      "playHtmlUrl": [],
      "demoadCnt": 1,
      "appList": [
        {
          "id": "6498883328",
          "cnt": null,

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/api-creative.md (reported line 177)May include surrounding context.

md
"playHtmlFp": [],
      "playHtmlUrl": [],
      "demoadCnt": 1,
      "appList": [
        {
          "id": "6498883328",
          "cnt": null,

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/api-creative.md (reported line 191)May include surrounding context.

md
"playHtmlFp": [],
      "playHtmlUrl": [],
      "demoadCnt": 1,
      "appList": [
        {
          "id": "6498883328",
          "cnt": null,

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/api-creative.md (reported line 192)May include surrounding context.

md
"playHtmlFp": [],
      "playHtmlUrl": [],
      "demoadCnt": 1,
      "appList": [
        {
          "id": "6498883328",
          "cnt": null,

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/api-creative.md (reported line 193)May include surrounding context.

md
"playHtmlFp": [],
      "playHtmlUrl": [],
      "demoadCnt": 1,
      "appList": [
        {
          "id": "6498883328",
          "cnt": null,

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/api-creative.md (reported line 194)May include surrounding context.

md
"playHtmlFp": [],
      "playHtmlUrl": [],
      "demoadCnt": 1,
      "appList": [
        {
          "id": "6498883328",
          "cnt": null,

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The instruction requires the skill to detect the user's language from the first message and maintain it, which imposes a language/locale behavior based on inference rather than explicit user choice. The file allows switching later, but it does not offer an initial opt-in or choice of response language.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The file documents an external base URL and authentication via X-API-Key: $SKILLBOSS_API_KEY, showing the skill uses network access and a sensitive credential. The document does not include any warning or disclosure about contacting a third-party service or the need to protect and scope the API key.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This markdown file documents network API calls to an external service and specifies use of an API key from the environment, but it does not include any warning about transmitting query data to a third-party endpoint or handling credentials securely. Under the markdown-file criteria for missing user warnings, networked behavior that may affect privacy or sensitive system data should be disclosed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

This markdown file describes use of a third-party API endpoint and an API key, but it does not include any warning that using the skill will send query data to an external service or require external credentials. For markdown files, omission of privacy or system-impact warnings about networked behavior can qualify as a missing user warning.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The user-intent mapping is written entirely around Chinese example utterances, which implies the skill is designed to recognize or prioritize a specific language. There is no accompanying note that other languages are supported or that language selection is optional, so this can conflict with a policy requiring user language/locale choice.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.