Back to skill

Security audit

gnview-script-extraction

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it says, but it sends local videos to a third-party cloud API and asks users to place an API key directly on the command line.

Review before installing. Use this only for videos you are allowed to send to VolcEngine ARK, avoid sensitive or regulated footage unless your organization permits it, and avoid placing long-lived API keys directly in commands. Prefer a protected environment variable or secret manager, use a virtual environment, and rotate the key if it has already appeared in shell history or logs.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script-extraction.py:89
Finding

API Key Exposed Through Command-Line Arguments

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
SKILL.md:12
Finding

Unpinned Third-Party Dependency Installation

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • 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 (7)

Tainted flow: 'files' from open (line 17, file read) → requests.post (network output)

High
Category
Data Flow
Confidence
97% confidence
Finding

The script reads an arbitrary local video file and uploads its contents to a third-party remote API. In the context of a tool specifically designed for cloud video analysis this behavior is intentional, but it still creates a real confidentiality and privacy risk because sensitive local media may be transmitted off-host without any consent prompt, validation, or policy guardrails.

Content

Scanner excerpt · scripts/script-extraction.py (reported line 27)May include surrounding context.

python
}
    
    try:
        response = requests.post(url, headers=headers, files=files, data=data)
        response.raise_for_status()
        result = response.json()
        if "error" in result or ("Error" in result and "Message" in result["Error"]):

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill documents shell execution and outbound network use but does not declare any explicit tool scope such as permissions or allowed-tools. This weakens policy enforcement and user visibility, making it easier for an agent runtime to invoke broader capabilities than the skill contract clearly communicates.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs users to upload local video files to an external API for analysis, but it does not prominently warn that potentially sensitive local content leaves the device and is sent to a third-party service. This can lead to unintentional disclosure of private or regulated data, especially because video files may contain faces, speech, locations, or confidential material.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code uploads video content to a remote service but provides no explicit user-facing warning about external transmission, privacy exposure, or third-party processing. Because videos may contain personal, proprietary, or regulated data, the absence of notice and consent increases the chance of unintended data disclosure.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% 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/script-extraction.py (reported line 73)May include surrounding context.

python
}
    
    try:
        response = requests.post(url, headers=headers, json=request_body)
        response.raise_for_status()
        result = response.json()
        if "error" in result or ("Error" in result and "Message" in result["Error"]):

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The API key is supplied as a positional command-line argument, which commonly exposes secrets through shell history, process listings, logs, and job runners. This can lead to credential leakage to other local users or monitoring systems even if the transport to the remote API is otherwise authenticated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The default analysis prompt is written in Chinese and implicitly steers the interaction toward a specific language/locale. There is no user choice, opt-in, or documented reason that this script must default to Chinese-only behavior.

Content

No source excerpt is available for this finding.