Back to skill

Security audit

Instagram Video Downloader

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it claims, but it sends user-supplied URLs to a third-party service and handles API credentials and external output with weak safeguards.

Install only if you are comfortable sending Instagram links to redfox.hk and using a RedFox API key. Prefer the REDFOX_API_KEY environment variable over --api-key, avoid submitting private or non-Instagram URLs, and download only content you own or are authorized to use.

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 (3)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/downloader.py:130
Finding

API Key Exposure Through Command-Line Arguments

Content
View full analysis
" --api-key ark_your_key` | | **Config File** | `echo '{"api_key":"ark_your_key"}' > ~/.qoder/apis/redfox.json` | ``` ```python parser.add_argument("--api-key", help="API Key (format ark_xxx; falls back to env var or config file if not provided)") ``` ### Technical Analysis The Skill accepts and documents passing the RedFox API key directly through the `--api-key` command-line argument. Command-line arguments are not an appropriate secret-delivery mechanism because they may be: - Stored in shell history. - Visible to local process-monitoring or diagnostic utilities. - Recorded by process accounting, audit, telemetry, or support tools. - Copied into terminal logs, automation logs, or command transcripts. Although environment-variable and permission-restricted configuration-file methods are also available, documenting the CLI method encourages users to expose credentials unnecessarily. ### Attack Path 1. A user follows the documented example and invokes the script with `--api-key ark_secret`. 2. The complete command is stored in shell history or exposed through process metadata while the script is running. 3. Another local user, monitoring service, diagnostic collector, or party with access to the command history obtains the API key. 4. The exposed key is reused to make unauthorized RedFox API requests until it expires or is revoked. ### Impact Assessment An attacker who recovers the key can act with the API permissions assigned to that credential. This may allow unauthorized API consumption, exhaustion of quotas or paid credits, and access to any RedFox func ...[truncated 204 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/downloader.py:211
Finding

Terminal Control-Sequence Injection Through Untrusted API Output

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/downloader.py:153
Finding

Missing Instagram Host Validation Before Third-Party Submission

Content
View full analysis
Remediation
View remediation
/` or `/p//`. 7. Avoid logging or displaying query strings unless required. 8. Perform validation before printing or sending the URL to the external API. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (10)

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 18)May include surrounding context.

md
- **Content Type**: Video (MP4 direct download link)
- **Input**: Paste an Instagram video link (one link per request; batch upload not supported)
- **Output**: Returns the video download URL directly — copy it into your browser or download tool to save
- **Link Display Rule**: Download and cover links must be displayed in full; never use `...` or any form of truncation

---

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly promotes downloading, collecting, and remixing Instagram videos 'watermark-free' without any mention of ownership, authorization, platform terms, or lawful-use restrictions. That framing encourages potentially infringing or unauthorized content acquisition, which makes the skill more dangerous in context because its primary advertised use is bypassing attribution and facilitating reuse of third-party media.

Content

No source excerpt is available for this finding.

Unbounded Output

Medium
Category
Output Handling
Confidence
60% confidence
Finding

Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.

Content

Scanner excerpt · README.en.md (reported line 29)May include surrounding context.

md
### Core Features

- **Video Parsing**: paste an Instagram video post link to parse out the watermark-free video download URL.
- **Complete Information**: displays resource type, duration, download link, cover link, and full description line by line without truncation.
- **Dual Format Support**: recognizes both Reel short videos and regular post video links.

---

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The README instructs users to invoke the skill with broad, natural-language phrases such as 'Help me save this IG video' and 'Download this IG video,' which can overlap with ordinary conversation and increase the chance of accidental or unintended invocation by an agent. In an agent environment, ambiguous triggers can cause the skill to activate on unrelated user text containing Instagram URLs, leading to unreviewed external fetches or copyright-sensitive downloading behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file says users can 'directly use natural language' and gives example phrases like '帮我把这条 IG 视频存下来' and '下载这条 IG 视频', but it does not define clear trigger boundaries or exclusion conditions. These phrases are broad conversational requests that could collide with general chat about downloading or saving videos, increasing the risk of unintended invocation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill explicitly advertises downloading 'watermark-free' Instagram videos and remixing content without any rights, consent, or platform-policy caveats. This encourages potentially unauthorized copying and reuse of third-party media, increasing legal, compliance, and abuse risk for users and the platform hosting the skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs users to submit Instagram links to an external service but does not clearly warn that those links are transmitted to a third-party API. This creates a privacy and transparency issue because user-provided URLs, and potentially associated metadata or usage patterns, are disclosed off-platform without explicit notice or consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script sends a user-supplied Instagram URL to the third-party service redfox.hk, but it does not clearly warn the user at the point of transmission that their input and associated metadata are being disclosed externally. This is a real privacy/security concern because users may assume the tool operates locally, while the URL could reveal private or sensitive account/content access patterns to an external API provider.

Content

No source excerpt is available for this finding.

Unbounded Output

Medium
Category
Output Handling
Confidence
60% confidence
Finding

Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.

Content

Scanner excerpt · scripts/downloader.py (reported line 222)May include surrounding context.

python
print(f"\n{GREEN}{BOLD}✓ Parsed successfully!{RESET}")

    # Full description (original text, no truncation)
    if desc:
        print(f"\n{CYAN}{BOLD}📝 Description:{RESET}")
        for line in str(desc).splitlines():

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

All user-facing instructions and examples in this file are written in Chinese, with no indication that users can choose another language. This can violate a language/locale policy when a skill effectively forces one language without user opt-in.

Content

No source excerpt is available for this finding.