Back to skill

Security audit

Influencer Report

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its influencer-report purpose, but profile mode can pull and analyze unrelated videos from the whole Memories.ai account library without clear scoping.

Install only if you are comfortable sending creator profile/video URLs and derived transcript or metadata content to Memories.ai. Prefer direct video URLs or a dedicated Memories.ai library/account for one creator at a time, and verify that every video in the generated report belongs to the intended influencer before using it for business decisions.

Vulnerability Patterns
  • 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
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/influencer_report.py:328
Finding

Unscoped Video Library Queries Can Analyze Unrelated Creator Content

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill advertises and documents capabilities that require environment access, network calls, and likely file output, but it does not declare any tool scope or permissions boundaries. This is dangerous because an agent may invoke the skill with broader-than-expected privileges, making external API calls and handling secrets without clear user-visible constraints or policy enforcement.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The description is broad enough to match common requests such as 'analyze' or 'review an influencer,' which can cause the skill to trigger in situations the user did not specifically intend. Over-broad triggering is risky because it may cause unsolicited scraping and transmission of profile or video URLs to third-party services, increasing privacy and consent issues.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The workflow and endpoint documentation show that profile URLs and video URLs are sent to external Memories.ai scraping and analysis APIs, but the skill description does not clearly warn users about this data transfer. This is dangerous because users may provide third-party profile links or creator content without informed consent, leading to privacy, compliance, and trust issues.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The report directly embeds slices of AI-generated audio and visual transcript content into the final markdown without any sanitization, minimization, or user-facing warning that the source material may contain sensitive, defamatory, copyrighted, or personal information. In this skill’s context—producing influencer vetting reports for downstream business decisions—that increases the chance of unintentionally redisclosing sensitive content or presenting unsafe/generated claims as report-ready evidence.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/influencer_report.py (reported line 25)May include surrounding context.

python
# Config
# ---------------------------------------------------------------------------

V1_BASE = "https://api.memories.ai/serve/api/v1"
V2_BASE = "https://mavi-backend.memories.ai/serve/api/v2"

PLATFORM_MAI_ENDPOINTS = {

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill sends user-supplied profile and video URLs to third-party Memories.ai services for scraping, transcript generation, and metadata retrieval, but it does not provide an explicit disclosure or confirmation step before transmitting that data. In an agent-skill context, users may not realize their inputs are leaving the local environment, which creates a privacy and consent risk, especially if the URLs identify private, sensitive, or internal content.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This request transmits the supplied profile URL to an external scraping API, which is a real data egress event. In this skill, external transmission is core functionality, but it remains security-relevant because users may unknowingly disclose browsing targets, creator identities, or other sensitive investigation inputs to a third party.

Content

Scanner excerpt · scripts/influencer_report.py (reported line 86)May include surrounding context.

python
print(f"[V1] Scraping profile: {profile_url} (count={count})...")
    try:
        resp = requests.post(url, headers=headers, json=payload, timeout=30)
        resp.raise_for_status()
        data = resp.json()
        if data.get("code") == "0000":

External Transmission

Medium
Category
Data Exfiltration
Confidence
82% confidence
Finding

This call retrieves the full video library from Memories.ai, which is another external network interaction involving potentially sensitive account-linked data. While expected for the feature, it increases exposure because the skill may enumerate and process more content than the user intended for a single report.

Content

Scanner excerpt · scripts/influencer_report.py (reported line 108)May include surrounding context.

python
print("[V1] Listing videos in library...")
    try:
        resp = requests.post(url, headers=headers, json={}, timeout=30)
        resp.raise_for_status()
        data = resp.json()
        videos = data.get("data", [])

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% confidence
Finding

This search request sends a query to the external Memories.ai service and may cause external processing over library contents. Although the query string here is static, the operation still reveals user activity and relies on a third-party service to inspect or rank remotely stored content.

Content

Scanner excerpt · scripts/influencer_report.py (reported line 133)May include surrounding context.

python
print(f"[V1] Searching: '{query}'...")
    try:
        resp = requests.post(url, headers=headers, json=payload, timeout=30)
        resp.raise_for_status()
        data = resp.json()
        results = data.get("data", [])

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

This request sends each video URL to a third-party transcript/analysis endpoint, which can expose the exact content under investigation and trigger remote AI processing. In a vetting workflow, those URLs and resulting transcripts may be sensitive from a privacy, legal, or confidentiality perspective, especially if the operator assumes analysis is local.

Content

Scanner excerpt · scripts/influencer_report.py (reported line 162)May include surrounding context.

python
print(f"[V2] Submitting MAI transcript: {video_url[:80]}...")
    try:
        resp = requests.post(url, headers=headers, json={"video_url": video_url}, timeout=30)
        resp.raise_for_status()
        data = resp.json()
        if data.get("code") == "0000":

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This metadata request sends the video URL and channel information to an external endpoint, again creating a data disclosure path to a third party. The risk is moderate because metadata collection appears intentional, but users may not expect multiple separate transmissions per video beyond a single analysis request.

Content

Scanner excerpt · scripts/influencer_report.py (reported line 188)May include surrounding context.

python
print(f"[V2] Fetching metadata: {video_url[:80]}...")
    try:
        resp = requests.post(url, headers=headers,
                             json={"video_url": video_url, "channel": "rapid"}, timeout=30)
        resp.raise_for_status()
        data = resp.json()

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The script writes the generated report to the path provided by --output, but does not warn about creating or overwriting a local file. There is no confirmation prompt, pre-write notice about overwrite behavior, or safety comment explaining the file write side effect.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.