Back to skill

Security audit

Facebook API

Security checks for vulnerabilities and agentic risk

Overview

This is mostly a transparent Facebook API wrapper, but it needs review because it recommends an unpinned external plugin and sends API-key-authenticated Facebook queries to a third-party service.

Install only if you are comfortable sending Facebook queries, IDs, links, marketplace/location filters, media URLs, registration use-case text, and your agntdata API credential to agntdata. Prefer the Markdown skill over the recommended plugin unless you can verify the plugin source, version, integrity, and permissions; avoid sensitive or regulated data in requests.

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:21
Finding
Unpinned Third-Party OpenClaw Plugin Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 21-34 **Vulnerability Type**: Unpinned executable dependency and supply-chain exposure **Risk Level**: Medium ### Vulnerable Code ```markdown ## Recommended: Install the Plugin **For the best experience, install the OpenClaw plugin for Facebook API instead of this skill.** The plugin provides native MCP tools, automatic authentication, and structured parameter validation. Skill (this document): ```bash clawhub install agntdata-facebook ``` Plugin (native tools; npm package matches `package.json`): ```bash openclaw plugins install @agntdata/openclaw-facebook ``` ``` ### Technical Analysis The Skill recommends installing the externally hosted npm package `@agntdata/openclaw-facebook` without specifying a reviewed version or integrity digest. The plugin source is not included in this project, so its behavior, transitive dependencies, installation scripts, and requested privileges cannot be verified by this audit. Because the installation command resolves the package dynamically, the code installed in the future may differ from the code available when the Skill was reviewed. A compromised publisher account, package registry, dependency, or later malicious release could therefore introduce executable behavior beyond the declared Facebook API functionality. The recommendation also describes the plugin as providing automatic authentication. If installed plugin code were compromised, this capability could place `AGNTDATA_API_KEY` or other data available to the OpenClaw process at risk. The exact accessible scope depends on the permissions and isolation applied by the host environment. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, registry delivery path, or a transitive dependency associated with `@agntdata/openclaw-facebook`. 2. The attacker publishes a malicious release under the same package name. 3. A user follows the unpinned comman ...[truncated 1374 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the plugin to an explicitly reviewed version: ```bash openclaw plugins install @agntdata/openclaw-facebook@<reviewed-version> ``` 2. Enforce package integrity verification using a trusted lockfile, registry integrity hash, signed release, or equivalent mechanism supported by OpenClaw. 3. Publish the plugin source and build provenance so reviewers can verify that the registry artifact corresponds to the audited source. 4. Audit package lifecycle scripts and all transitive dependencies before recommending installation. Disable installation scripts where they are unnecessary. 5. Document the plugin's required permissions, environment-variable access, filesystem access, network destinations, and tool capabilities. 6. Run the plugin with least privilege: - Expose only `AGNTDATA_API_KEY` when required. - Restrict outbound traffic to documented API hosts. - Deny unnecessary filesystem and process-execution access. - Isolate the plugin from unrelated agent credentials and tools. 7. Avoid describing the plugin as the preferred option until its source, exact version, integrity information, and permission model are available for audit. 8. Establish release monitoring and revocation procedures so compromised versions can be blocked promptly. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (7)

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/facebook
Confidence
94% confidence
Finding
The skill depends on curl and is explicitly built to transmit data and an API credential to an external service. External transmission is expected for an API wrapper, but it still creates a real security and privacy boundary because user-supplied Facebook identifiers, search terms, and metadata leave the local environment and are processed by a third party.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill instructs users to send Facebook queries, links, page/group IDs, marketplace parameters, and potentially sensitive research terms to api.agntdata.dev, but it does not clearly warn users that this data is transmitted to a third-party service. Because the skill is designed for broad scraping/search workflows, users may unknowingly disclose sensitive investigative, commercial, or personal data in requests.

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": ["facebook"], "useCase": "Brief description of your use case"}'
Confidence
98% confidence
Finding
The registration command sends the bearer API key plus a free-form useCase string to api.agntdata.dev. This is not inherently malicious, but it is a genuine external transmission of credentials and potentially sensitive operational context, especially if users place proprietary or investigative details in the useCase field.

External Transmission

Medium
Category
Data Exfiltration
Content
These public endpoints (no API key required) let you explore this platform's capabilities:

```bash
curl https://api.agntdata.dev/v1/platforms/facebook
```

Returns: full endpoint list, OpenAPI spec, features, and use cases.
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
These public endpoints (no API key required) let you explore this platform's capabilities:

```bash
curl https://api.agntdata.dev/v1/platforms/facebook
```

Returns: full endpoint list, OpenAPI spec, features, and use cases.
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
## Base URL

```
https://api.agntdata.dev/v1/data/facebook
```

## Available Endpoints
Confidence
96% confidence
Finding
The base URL defines the primary external service that receives all subsequent Facebook-related requests. In context, this means a wide variety of potentially sensitive inputs—including social graph identifiers, content links, searches, and marketplace parameters—are routed to a third-party processor, making the absence of strong warnings and data-minimization guidance materially relevant.

External Transmission

Medium
Category
Data Exfiltration
Content
## Example

```bash
curl -X GET &#x27;https://api.agntdata.dev/v1/data/facebook&#x27; \
  -H &#x27;X-API-Key: your_api_key_here&#x27; \
  -H &#x27;Content-Type: application/json&#x27;
```
Confidence
91% confidence
Finding
The example demonstrates calling the third-party API with an API key, normalizing the pattern of sending credentials and potentially future user data externally, but without accompanying security guidance. The example also inconsistently uses X-API-Key while earlier sections use Authorization: Bearer, which may encourage insecure copy-paste behavior or confusion in credential handling.

Static analysis

No suspicious patterns detected.