Back to skill

Security audit

Taobao Operations

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to be a Taobao operations helper, but it reports business, compliance, customer-service, and after-sales success from hard-coded demo data instead of real checks or platform actions.

Review this carefully before installing. Do not rely on its reports or success messages for real store compliance, inventory, risk, customer-service, or refund decisions unless the hard-coded demo behavior is replaced with verified Taobao API integrations, clear failure handling, and explicit human approval gates. Install dependencies only in an isolated environment and pin them if used.

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

Error
Location
scripts/operations_main.py:56
Finding

Fabricated Operational, Compliance, and Security Results

Content
View full analysis

Vulnerability Details

File Location: scripts/operations_main.py:56-65, scripts/operations_main.py:92-105, scripts/operations_main.py:135-141, scripts/operations_main.py:195-217, scripts/operations_main.py:222-238, and scripts/operations_main.py:254-261
Vulnerability Type: Misleading hard-coded results and unconditional success reporting
Risk Level: High

Vulnerable Code

python
# Create daily report data (sample data)
data = {
    '核心指标': ['总销售额', '订单数', '客单价', '转化率', 'ROI'],
    '今日数值': ['15,000 元', '120', '125 元', '3.5%', '2.5'],
    '昨日数值': ['12,000 元', '100', '120 元', '3.2%', '2.3'],
    '环比': ['+25%', '+20%', '+4.2%', '+0.3%', '+8.7%'],
    '异常标注': ['✅', '✅', '✅', '✅', '✅']
}
python
# Create compliance inspection report (sample data)
data = {
    '商品 ID': ['1001', '1002', '1003'],
    '商品名称': ['春秋夹克', '休闲裤', 'T 恤'],
    '违禁词检测': ['✅ 通过', '✅ 通过', '✅ 通过'],
    '属性完整性': ['✅ 完整', '⚠️ 缺失面料', '✅ 完整'],
    '材质一致性': ['✅ 一致', '✅ 一致', '✅ 一致'],
    '价格合理性': ['✅ 合理', '✅ 合理', '✅ 合理'],
    '库存状态': ['✅ 充足', '⚠️ 不足 10 件', '✅ 充足'],
    '风险等级': ['低', '中', '低'],
    '修改建议': ['', '建议补充面料信息', '']
}
python
# Create inventory synchronization report (sample data)
data = {
    '库存类型': ['淘宝库存', '网商园现货', '差异'],
    '数量': ['100 件', '80 件', '-20 件'],
    '状态': ['✅', '⚠️ 低于安全库存', '⚠️ 需补货'],
    '建议': ['', '', '建议补货 50 件']
}
python
def start_cs_auto_reply(self):
    """Start automatic customer-service replies in the background."""
    logger.info("启动客服自动回复(后台运行)")

    print("💬 正在启动智能客服自动回复...")
    print()
    print("✅ 客服自动回复已启动!")
    print()
    print("⚠️  重要提示:")
    print("   1. 客服回复开头固定话术:")
    print("      「您好,当前为智能客服服务,复杂问题将为您转接人工客服~」")
    print("   2. 仅 3 类低风险售后自动处理:")
    print("      - 未发货仅退款")
    print("      - 已发货未签收拦截成功退款")
    print("      - 50 元以内无纠纷小额退款")
    print("   3. 其余售后 100% 转人工处理")
    print("   
...[truncated 3844 chars]
Remediation
View remediation

Remediation Suggestions

  1. Disable operational commands until their underlying platform integrations are implemented.
  2. Clearly and prominently label all hard-coded output as demonstration data in terminal output, filenames, worksheets, and documentation.
  3. Retrieve sales, inventory, product, order, and security information from authoritative, read-only Taobao API endpoints.
  4. Validate API responses, account identity, response timestamps, pagination, and data completeness before producing reports.
  5. Fail closed when credentials are missing, API requests fail, or required data is incomplete. Never substitute a normal or successful result.
  6. Report after-sales completion only after receiving and validating a successful platform response for the specified order.
  7. Report customer-service activation only after a real worker or service has started successfully and passed a health check.
  8. Include data provenance, collection time, account/store identifier, query status, and explicit uncertainty indicators in every report.
  9. Add integration tests using mocked API responses for success, authentication failure, timeout, partial data, and platform rejection scenarios.
  10. Update README.md, SKILL.md, and the import report so that documented capabilities accurately match implemented behavior.

T08 · Insecure Dependencies

Note
Location
requirements.txt:5
Finding

Unpinned Dependencies Permit Unreviewed Package Versions

Content
View full analysis

Vulnerability Details

File Location: requirements.txt:5-16 and README.md:6-10
Vulnerability Type: Open-ended third-party dependency resolution without integrity verification
Risk Level: Low

Vulnerable Code

text
# HTTP requests
requests>=2.31.0

# Data processing
pandas>=2.0.0
openpyxl>=3.1.0

# Environment variable loading
python-dotenv>=1.0.0

# Logging
colorlog>=6.7.0

The documented installation procedure executes dependency installation directly:

bash
cd C:\Users\Administrator\.openclaw\workspace\skills\taobao-operations
pip install -r requirements.txt

Technical Analysis

Every dependency uses an open-ended minimum-version constraint. Consequently, installation may resolve to future package versions that were not available or reviewed when the Skill was published. No lock file, package hashes, approved index configuration, or integrity constraints are provided.

Python package installation and runtime imports can execute package-controlled code. If an upstream package account, release process, distribution artifact, or package-index channel is compromised, a later package version satisfying the minimum constraint can be installed automatically.

The audit found no evidence that the currently named dependencies are malicious. The risk arises from non-reproducible resolution and lack of integrity controls rather than from a confirmed malicious package.

Attack Path

  1. An attacker compromises an upstream dependency release process, package maintainer account, or distribution channel.
  2. The attacker publishes a malicious version whose number satisfies the corresponding >= constraint.
  3. A user follows the documented pip install -r requirements.txt procedure.
  4. Package resolution selects the compromised release because no exact version or hash is required.
  5. Malicious code executes during installation or when the affected package ...[truncated 868 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every direct dependency to an exact, reviewed version.
  2. Generate and commit a lock file that includes all transitive dependencies.
  3. Require cryptographic hashes during installation, such as through a hash-locked requirements file and pip --require-hashes.
  4. Install packages only from an explicitly approved package index using HTTPS.
  5. Perform dependency vulnerability and provenance scanning in continuous integration.
  6. Review and test dependency upgrades before updating pinned versions.
  7. Use an isolated virtual environment and avoid running package installation with administrative privileges.
  8. Remove unused dependencies to reduce supply-chain exposure; for example, confirm whether requests and colorlog are necessary because the reviewed script does not use them.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (25)

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 · README.md (reported line 16)May include surrounding context.

bash
# 复制环境变量模板
copy .env.example .env

# 编辑 .env 文件(如使用淘宝 API)
notepad .env

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 · README.md (reported line 18)May include surrounding context.

复制环境变量模板

copy .env.example .env

编辑 .env 文件(如使用淘宝 API)

notepad .env

text

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 · README.md (reported line 19)May include surrounding context.

复制环境变量模板

copy .env.example .env

编辑 .env 文件(如使用淘宝 API)

notepad .env

text

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill description repeatedly claims read-only, non-modifying, human-confirmed behavior, but the documented commands include automatic customer-service replies and after-sales auto-processing. This mismatch is dangerous because users and policy engines may trust the safer description while the actual behavior can perform externally visible actions, creating risk of unauthorized responses, business logic changes, or compliance violations.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file claims that all operations require human confirmation, yet it exposes auto-reply and auto after-sales handling modes. Even though this sample implementation only prints messages, the interface and stated behavior normalize autonomous customer-facing and refund-related actions, which could mislead operators and, in a fuller implementation, cause unauthorized business actions or compliance issues.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
92% confidence
Finding

The CLI is presented as 'only generating suggestions', but it includes commands to start automated customer-service behavior and auto-process after-sales requests. In an operational skill, this kind of capability mismatch can cause unsafe trust assumptions by users or reviewers and can enable unintended autonomous handling of customer interactions or refunds once connected to real backends.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill documentation is entirely written in Chinese and the invocation examples use Chinese command parameters such as '日期' and '全店'. There is no indication that users may choose another language or that the Chinese-only requirement is region-specific and intentional, which creates a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
83% confidence
Finding

The skill exposes code-capable behavior without declaring an explicit tool scope or permissions boundary. Even though the markdown claims read-only, the absence of formal restrictions means the runtime may still access environment-derived secrets or broader capabilities than intended, weakening least-privilege controls.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The claim of '100% compliant' and 'zero violation risk' is an absolute safety guarantee that cannot be justified from the skill content alone. Such language can mislead operators into lowering scrutiny, approving broader access, or relying on automation in regulated customer-service and after-sales contexts where mistakes can directly create platform compliance exposure.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This manifest/config file uses Chinese-only natural-language labels, comments, and condition values throughout, which effectively forces a specific language for operators and downstream users. The file does not offer a language choice or explain that the skill is intentionally limited to a Chinese-language or region-specific deployment.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The module docstring and all user-facing descriptions are written as Chinese-only operational instructions, and the file does not provide any language selection, opt-in, or justification that this skill is restricted to a Chinese-speaking or region-specific audience. Under the policy rule, forcing a specific language without user choice is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest description frames the skill as read-only and non-modifying, but the code creates a logs directory and writes to operations.log. Additional commands also create reports and export XLSX files, which are state-changing write operations rather than purely read-only behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module docstring says '仅读 API 数据' and '不自动修改任何信息', which implies a read-only operational posture. However, functions such as generate_daily_report save XLSX files under ./reports, and similar write behavior appears in compliance, inventory, task, and risk report generation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The document makes strong safety assurances such as 'read-only' and 'does not auto-modify,' yet elsewhere states that customer-service auto-replies and three categories of after-sales cases are handled automatically. This inconsistency can mislead operators and reviewers about the skill’s actual behavior, increasing the chance that automation is enabled or trusted in situations where human review was expected.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The '不自动修改/仅生成建议' claim directly conflicts with statements that some after-sales handling is automatic. Contradictory safety documentation is dangerous because users may rely on the less risky description and deploy the skill without appropriate oversight, potentially causing unauthorized customer communications or workflow actions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The natural-language comments describe the skill entirely in Chinese and frame it as a combined operations/customer-service/compliance skill without indicating that language choice is optional. Under the policy rule, forcing a specific language or locale without opt-in can be a violation when no justification or alternative is provided.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
93% confidence
Finding

Using requests>=2.31.0 leaves dependency resolution open to future releases, making builds non-reproducible and preventing verification that a safe version is consistently installed. In a skill that performs HTTP requests and may handle customer-service or operational data, this increases supply-chain and regression risk if a vulnerable or incompatible release is pulled.

Content

Scanner excerpt · requirements.txt (reported line 6)May include surrounding context.

text
# 版本:1.0.0

# HTTP 请求
requests>=2.31.0

# 数据处理
pandas>=2.0.0

Unverifiable Dependency: requests has 16 known advisory(ies) (CVE-2014-1830 (Exposure of Sensitive Information to an Unauthorized Actor in Requests); CVE-2024-47081 (Requests vulnerable to .netrc credentials leak via malicious URLs); CVE-2024-35195 (Requests `Session` object does not verify requests after making first request wi) +13 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
89% confidence
Finding

requests has multiple known advisories, and because the manifest does not pin a version, it is impossible to verify from this file whether deployments avoid affected releases. Given this skill's stated use of APIs and customer/operations workflows, an affected HTTP client version could expose credentials, TLS/session handling, or request metadata in real-world use.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
90% confidence
Finding

pandas>=2.0.0 is unpinned, so installations may resolve to different versions over time, reducing reproducibility and making it difficult to guarantee that known-vulnerable releases are excluded. While this file alone does not show unsafe deserialization, data-processing libraries are high-value supply-chain dependencies and should be controlled.

Content

Scanner excerpt · requirements.txt (reported line 9)May include surrounding context.

text
requests>=2.31.0

# 数据处理
pandas>=2.0.0
openpyxl>=3.1.0

# 环境变量加载

Unverifiable Dependency: pandas has 1 known advisory(ies) (CVE-2020-13091 (** DISPUTED ** pandas through 1.0.3 can unserialize and execute commands from an)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
81% confidence
Finding

A known advisory exists for pandas, and the lack of pinning means this manifest cannot prove whether a safe release is used. The danger is contextual and lower here because the file does not show unsafe pickle/deserialization usage, but dependency uncertainty remains a valid supply-chain concern.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
91% confidence
Finding

openpyxl>=3.1.0 permits any newer release, which weakens reproducibility and makes it unclear whether future installed versions remain free from parsing-related issues. Because spreadsheet libraries often process untrusted files in operations/customer-support workflows, uncontrolled upgrades can increase the risk of parser or file-handling vulnerabilities impacting the environment.

Content

Scanner excerpt · requirements.txt (reported line 10)May include surrounding context.

text
# 数据处理
pandas>=2.0.0
openpyxl>=3.1.0

# 环境变量加载
python-dotenv>=1.0.0

Unverifiable Dependency: openpyxl has 2 known advisory(ies) (CVE-2017-5992 (Improper Restriction of XML External Entity Reference in Openpyxl); CVE-2017-5992 (Openpyxl 2.4.1 resolves external entities by default, which allows remote attack)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
87% confidence
Finding

openpyxl has historical XXE-related advisories, and without a pinned version the manifest cannot demonstrate that deployments are on a non-affected release. In an operations/support skill that may read spreadsheets from external parties, this context makes parser-related dependency risk more relevant than a purely internal-only tool.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
88% confidence
Finding

python-dotenv>=1.0.0 allows unreviewed future versions to be installed, creating supply-chain uncertainty and making it hard to verify that deployment uses a safe release. Environment-loading libraries influence configuration and secrets handling, so version drift can have security consequences even if no direct exploit is shown in this file.

Content

Scanner excerpt · requirements.txt (reported line 13)May include surrounding context.

text
openpyxl>=3.1.0

# 环境变量加载
python-dotenv>=1.0.0

# 日志
colorlog>=6.7.0

Unverifiable Dependency: python-dotenv has 2 known advisory(ies) (CVE-2026-28684 (python-dotenv: Symlink following in set_key allows arbitrary file overwrite via ); CVE-2026-28684 (python-dotenv reads key-value pairs from a .env file and can set them as environ)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
76% confidence
Finding

python-dotenv has listed advisories, and the unpinned specification prevents verification that installed versions are unaffected. The risk is somewhat limited by the file alone, but because this library touches environment/configuration material, uncertainty around version safety is still undesirable.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
84% confidence
Finding

colorlog>=6.7.0 is an unpinned dependency, which creates nondeterministic builds and minor supply-chain exposure. The direct security impact is lower than for network or file-processing libraries, but exact pinning is still a best practice for integrity and reproducibility.

Content

Scanner excerpt · requirements.txt (reported line 16)May include surrounding context.

text
python-dotenv>=1.0.0

# 日志
colorlog>=6.7.0