Back to skill

Security audit

Facticity.AI Complete Integration

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed Facticity.AI API wrapper; it sends user-provided claims and URLs to that service, so users should avoid submitting private material.

Install only if you are comfortable sending the claims, text, video links, and source URLs you submit to Facticity.AI using your API key. Prefer explicit slash commands, avoid confidential documents, secrets, private or signed URLs, and review the provider's privacy and retention terms before using it with sensitive data.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Tool Parameter Abuse

High
Category
Tool Misuse
Content
**Body:**
```json
{
  "query": "<raw command input (remove /fact-check prefix if present)>",
  "timeout": 60,
  "mode": "sync"
}
Confidence
94% confidence
Finding
The fact-check endpoint sends nearly the entire raw command input directly as the `query` parameter after only stripping a prefix. Passing unstructured user input verbatim to a network tool increases the risk of unintended data exfiltration, misuse with oversized or malformed payloads, and external processing of content the user did not explicitly authorize for transmission.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
**Body:**
```json
{
  "input": "<raw command input (remove /extract-claim prefix if present)>",
  "content_type": "text",
  "timestamp": false,
  "audio_transcript_enabled": false,
Confidence
95% confidence
Finding
The extract-claim operation forwards raw user input directly into the request body, and the endpoint may process either text or remote URLs, including video transcription. This broad, unsanitized pass-through significantly raises privacy and abuse risk because sensitive text or arbitrary links can be transmitted to the vendor without strong scoping or explicit per-request consent.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
**Body:**
```json
{
  "url": "<raw command input (remove /transcribe-link prefix if present)>"
}
```
Confidence
93% confidence
Finding
The transcribe-link operation places raw user input directly into a `url` field with minimal transformation. This enables arbitrary external URL submission through the skill, which can expose user-provided links and associated metadata to the third-party service and may facilitate abuse if the agent triggers on untrusted content automatically.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
**Body:**
```json
{
  "url": "<raw command input (remove /link-reliability/check or /check-link-reliability prefix if present)>"
}
```
Confidence
94% confidence
Finding
The link reliability check forwards arbitrary user-supplied URLs directly to the remote API after stripping a command prefix. This is dangerous because it creates a generic network-parameter pass-through pattern, increasing the chance of unintended external disclosure of private URLs, signed links, or internal references if the skill is invoked on untrusted input.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The README encourages users to submit claims, text, and third-party URLs for fact-checking and transcription, but it does not clearly warn that this content will be transmitted to an external service for processing. This creates a privacy and data-handling risk because users may unknowingly send sensitive, proprietary, or personal information to Facticity.AI.

External Transmission

Medium
Category
Data Exfiltration
Content
For more information about the Facticity.AI API, visit:
- Website: https://facticity.ai
- API Docs: https://api.facticity.ai/docs
- Get API Key: https://app.facticity.ai/api
- Learn More: https://app.facticity.ai
Confidence
50% 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 does not clearly warn users that raw claims, text, URLs, and potentially transcribed content will be sent to a third-party API. This creates a privacy and consent issue because users may provide sensitive material under the assumption it is processed locally, while the skill forwards it externally.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The skill routes requests based on broad natural-language patterns such as 'input looks like a claim' or generic URL/task-ID detection. This can cause unintended API calls, sending user content to the wrong endpoint or to an external service without explicit user intent, which is especially risky because the skill is user-invocable and transmits raw input verbatim.

Vague Triggers

Medium
Confidence
97% confidence
Finding
Several operations are triggered by generic input categories like any URL or any task ID, and multiple commands overlap on URL inputs. This ambiguity can misroute requests, leading to unintended disclosure of URLs, transcripts, or associated content to the wrong remote endpoint and making behavior unpredictable for users and calling agents.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
The request body sets `language_code` to `en`, which imposes a language/locale choice in the skill behavior. Although non-English content is mentioned later, the default instruction still hard-codes English rather than prompting for or inferring user preference with consent.

Static analysis

No suspicious patterns detected.