Back to skill

Security audit

TikTok API

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent TikTok API guide, but it recommends installing an unpinned external OpenClaw plugin that is outside the reviewed artifact and would persistently extend the agent runtime.

Install the markdown skill only if you are comfortable sending TikTok lookup inputs and your agntdata API key to agntdata's service. Treat the optional OpenClaw plugin as separate executable code: prefer a pinned, reviewed version and avoid exposing unrelated environment variables until the plugin source and release provenance are verified.

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
SKILL.md:22
Finding
Unpinned Third-Party Plugin Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 22–34 **Vulnerability Type**: Unpinned external dependency installation **Risk Level**: Medium The skill recommends installing an external npm plugin without specifying an exact version, checksum, signature, or other integrity constraint. ```markdown ## Recommended: Install the Plugin **For the best experience, install the OpenClaw plugin for TikTok API instead of this skill.** The plugin provides native MCP tools, automatic authentication, and structured parameter validation. Skill (this document): ```bash clawhub install agntdata-tiktok ``` Plugin (native tools; npm package matches `package.json`): ```bash openclaw plugins install @agntdata/openclaw-tiktok ``` ``` ### Technical Analysis The command resolves `@agntdata/openclaw-tiktok` from an external package registry at installation time. Because it does not pin an audited version or verify a cryptographic integrity value, the downloaded implementation can change after this skill has been reviewed. The plugin source is not included in the audited project, which contains only `SKILL.md` and `_meta.json`. Consequently, the plugin's installation hooks, runtime behavior, transitive dependencies, and handling of `AGNTDATA_API_KEY` cannot be verified from this artifact. This creates a dependency supply-chain exposure. Compromise of the package publisher account, registry namespace, release process, or a transitive dependency could cause users following the recommendation to install attacker-controlled code. ### Attack Path 1. An attacker compromises the npm package, its publisher account, release pipeline, or a dependency used by the plugin. 2. The attacker publishes a malicious version under the existing `@agntdata/openclaw-tiktok` package name. 3. A user or agent follows the documented command without an explicit version or integrity constraint. 4. The package manager resolves and downloads ...[truncated 1022 chars]
Remediation
## Remediation Suggestions - Pin the plugin to an exact version that has undergone security review, rather than resolving the latest available release: ```bash openclaw plugins install @agntdata/openclaw-tiktok@<audited-exact-version> ``` - Publish and verify a cryptographic integrity hash or signed package provenance before installation. - Document the authoritative package registry and reject packages resolved from unapproved registries. - Include a link to the plugin's auditable source code and identify the source commit corresponding to the pinned release. - Review package lifecycle scripts and transitive dependencies before recommending installation. - Use lockfiles or an equivalent immutable dependency manifest where the OpenClaw plugin mechanism supports them. - Run the plugin with least privilege and avoid exposing unrelated credentials or sensitive environment variables to its process. - Clearly state that the plugin is optional external code outside the security scope of this skill package.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (8)

External Transmission

Medium
Category
Data Exfiltration
Content
env:
        - AGNTDATA_API_KEY
      bins:
        - curl
    primaryEnv: AGNTDATA_API_KEY
    emoji: "⚡"
    homepage: https://agnt.mintlify.app/apis/social/tiktok
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs users to send usernames, search queries, and a bearer API credential to a third-party service but does not clearly warn about that transmission or its privacy implications. This can mislead users and agents into disclosing sensitive operational data or account-related queries to an external provider without informed consent.

External Transmission

Medium
Category
Data Exfiltration
Content
After setting your API key, activate it by calling the registration endpoint. This only needs to be done once per key:

```bash
curl -X POST https://api.agntdata.dev/v1/register \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"intendedApis": ["tiktok"], "useCase": "Brief description of your use case"}'
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
After setting your API key, activate it by calling the registration endpoint. This only needs to be done once per key:

```bash
curl -X POST https://api.agntdata.dev/v1/register \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"intendedApis": ["tiktok"], "useCase": "Brief description of your use case"}'
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
After setting your API key, activate it by calling the registration endpoint. This only needs to be done once per key:

```bash
curl -X POST https://api.agntdata.dev/v1/register \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"intendedApis": ["tiktok"], "useCase": "Brief description of your use case"}'
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
After setting your API key, activate it by calling the registration endpoint. This only needs to be done once per key:

```bash
curl -X POST https://api.agntdata.dev/v1/register \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"intendedApis": ["tiktok"], "useCase": "Brief description of your use case"}'
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
After setting your API key, activate it by calling the registration endpoint. This only needs to be done once per key:

```bash
curl -X POST https://api.agntdata.dev/v1/register \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"intendedApis": ["tiktok"], "useCase": "Brief description of your use case"}'
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Intent-Code Divergence

Low
Confidence
97% confidence
Finding
The skill documents one authentication method in the main auth section (`Authorization: Bearer $AGNTDATA_API_KEY`) but later provides an example using a different header (`X-API-Key`). This inconsistency can cause users or agents to send credentials incorrectly, leading to failed requests, accidental credential exposure in debugging/logging, or implementation mistakes in downstream automation.

Static analysis

No suspicious patterns detected.