Back to skill

Security audit

ASIN营销视频全自动流水线

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed n8n automation guide for creating Amazon product videos, with expected third-party API use and spreadsheet updates.

Install only if you intend to run an n8n workflow that shares ASIN, product images, titles, descriptions, and generated video metadata with Apify, Topview AI, and Google Sheets. Use least-privilege API keys and a service account limited to the target spreadsheet, keep secrets out of repositories and screenshots, and consider pinning the n8n Docker image before production use.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (30)

Tainted flow: 'headers' from os.getenv (line 87, credential/environment) → requests.get (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/validate_setup.py (reported line 59)May include surrounding context.

python
# 这里使用任务列表接口作为健康检查
        # 根据实际API文档调整URL
        response = requests.get(
            "https://api.topview.ai/v1/m2v/task",
            headers=headers,
            timeout=10

Tainted flow: 'headers' from os.getenv (line 87, credential/environment) → requests.get (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/validate_setup.py (reported line 92)May include surrounding context.

python
}
        
        # 获取用户信息作为健康检查
        response = requests.get(
            "https://api.apify.com/v2/users/me",
            headers=headers,
            timeout=10

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/WORKFLOW_SETUP.md (reported line 159)May include surrounding context.

md
print_header("创建环境变量模板")
    
    env_content = """# ASIN营销视频流水线配置
# 复制此文件为 .env 并填入实际值

# Google Sheets
GOOGLE_SHEETS_ID=your_spreadsheet_id_here

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/init_pipeline.py (reported line 66)May include surrounding context.

python
print_header("创建环境变量模板")
    
    env_content = """# ASIN营销视频流水线配置
# 复制此文件为 .env 并填入实际值

# Google Sheets
GOOGLE_SHEETS_ID=your_spreadsheet_id_here

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/init_pipeline.py (reported line 88)May include surrounding context.

python
print_header("创建环境变量模板")
    
    env_content = """# ASIN营销视频流水线配置
# 复制此文件为 .env 并填入实际值

# Google Sheets
GOOGLE_SHEETS_ID=your_spreadsheet_id_here

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/init_pipeline.py (reported line 106)May include surrounding context.

python
print_header("创建环境变量模板")
    
    env_content = """# ASIN营销视频流水线配置
# 复制此文件为 .env 并填入实际值

# Google Sheets
GOOGLE_SHEETS_ID=your_spreadsheet_id_here

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/validate_setup.py (reported line 232)May include surrounding context.

python
print_header("创建环境变量模板")
    
    env_content = """# ASIN营销视频流水线配置
# 复制此文件为 .env 并填入实际值

# Google Sheets
GOOGLE_SHEETS_ID=your_spreadsheet_id_here

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/validate_setup.py (reported line 230)May include surrounding context.

python
print_header("ASIN营销视频流水线配置验证")
    
    # 加载.env文件(如果存在)
    env_file = Path(".env")
    if env_file.exists():
        print("  ℹ️  加载 .env 文件")
        with open(env_file) as f:

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill describes importing and operating n8n workflows that interact with external services, write files, and update Google Sheets, yet it declares no explicit tool scope or permissions boundaries. This creates an authorization ambiguity where an agent may use network, shell, environment, and file-write capabilities more broadly than the user expects, increasing the risk of unintended external actions or secret exposure during setup and execution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
75% confidence
Finding

Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
75% confidence
Finding

Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The setup guide instructs users to enter API keys and import a Google service-account JSON file, but gives no warning about secure storage, least privilege, rotation, or avoiding exposure in logs, screenshots, backups, and shared n8n instances. In an automation platform handling multiple third-party services, weak credential-handling guidance materially increases the chance of token leakage and unauthorized access.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The workflow posts ASIN-derived data to the Apify API, which is an intentional external transmission but still a real security/privacy concern because data leaves the local automation boundary. In this skill context, third-party scraping is core functionality, which makes the behavior expected, but it remains risky without disclosure, data minimization, and trust review of the external service.

Content

Scanner excerpt · references/n8n-workflow-preview.json (reported line 52)May include surrounding context.

json
},
    {
      "parameters": {
        "url": "https://api.apify.com/v2/acts/epctex~amazon-product-scraper/run-sync-get-dataset-items",
        "method": "POST",
        "body": {
          "asin": "={{ $json['ASIN'] }}",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This workflow reads spreadsheet-derived ASIN/product data and sends it to Apify and Topview without any in-file disclosure, consent step, or filtering boundary. Even if the data is product-focused, spreadsheet fields and scraped content can contain sensitive business data or unexpected values, creating an avoidable external data-sharing risk.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

This node uploads image content to Topview using an API credential, meaning workflow data is transmitted to a third-party video-generation service. Because the skill's purpose is automated marketing-video creation, the transmission is functionally necessary, but it still creates confidentiality and governance risks if the uploaded images or metadata are not vetted.

Content

Scanner excerpt · references/n8n-workflow-preview.json (reported line 71)May include surrounding context.

json
"parameters": {
        "operation": "upload",
        "requestOptions": {
          "url": "https://api.topview.ai/v1/m2v/image/upload",
          "headers": {
            "Authorization": "Bearer {{ $credentials.topviewApiKey }}"
          }

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

The workflow sends product title and description content to Topview to create a video task, exposing externally sourced or spreadsheet-linked content to a third party. In this business context that is expected behavior, but unvalidated text can still leak proprietary copy, include unexpected payloads, or violate internal data-sharing rules.

Content

Scanner excerpt · references/n8n-workflow-preview.json (reported line 83)May include surrounding context.

json
},
    {
      "parameters": {
        "url": "https://api.topview.ai/v1/m2v/task",
        "method": "POST",
        "body": {
          "script_id": "marketing_template_01",

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This Python file contains user-facing docstrings and printed setup guidance entirely in Chinese, including operational instructions and status/error messages. That creates a language/locale policy concern because the skill effectively forces one language without any opt-in or explanation that the tool is intended only for a Chinese-speaking or region-specific audience.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This Python file contains its top-level description entirely in Chinese and continues to present all operational prompts and status messages in Chinese. Because the file does not offer any language selection or explain that the skill is intended only for a Chinese-speaking or region-specific environment, it violates the language/locale policy criterion.

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 · references/n8n-workflow-export.json (reported line 61)May include surrounding context.

json
# 这里使用任务列表接口作为健康检查
        # 根据实际API文档调整URL
        response = requests.get(
            "https://api.topview.ai/v1/m2v/task",
            headers=headers,
            timeout=10
        )

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 · references/n8n-workflow-export.json (reported line 74)May include surrounding context.

json
# 这里使用任务列表接口作为健康检查
        # 根据实际API文档调整URL
        response = requests.get(
            "https://api.topview.ai/v1/m2v/task",
            headers=headers,
            timeout=10
        )

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 · references/n8n-workflow-export.json (reported line 101)May include surrounding context.

json
# 这里使用任务列表接口作为健康检查
        # 根据实际API文档调整URL
        response = requests.get(
            "https://api.topview.ai/v1/m2v/task",
            headers=headers,
            timeout=10
        )

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 · references/n8n-workflow-preview.json (reported line 112)May include surrounding context.

json
# 这里使用任务列表接口作为健康检查
        # 根据实际API文档调整URL
        response = requests.get(
            "https://api.topview.ai/v1/m2v/task",
            headers=headers,
            timeout=10
        )

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/validate_setup.py (reported line 60)May include surrounding context.

python
# 这里使用任务列表接口作为健康检查
        # 根据实际API文档调整URL
        response = requests.get(
            "https://api.topview.ai/v1/m2v/task",
            headers=headers,
            timeout=10
        )

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/validate_setup.py (reported line 93)May include surrounding context.

python
# 获取用户信息作为健康检查
        response = requests.get(
            "https://api.apify.com/v2/users/me",
            headers=headers,
            timeout=10
        )

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/validate_setup.py (reported line 163)May include surrounding context.

python
# 检查n8n是否安装
    import subprocess
    try:
        result = subprocess.run(
            ["n8n", "--version"],
            capture_output=True,
            text=True,

Static analysis

No suspicious patterns detected.