Back to skill

Security audit

智能数据采集器

Security checks for vulnerabilities and agentic risk

Overview

This data collection skill mostly does what it advertises, but it also ships under-disclosed OpenClaw platform-management methods that could install, uninstall, execute, or upload other skills if given a valid API key.

Review carefully before installing. Only use this skill with least-privilege, read-only database/API credentials; avoid giving it OpenClaw admin or publishing tokens; configure exports to non-sensitive paths; and enable scheduled collection only when you understand what systems it will repeatedly access.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (46)

Intent-Code Divergence

Medium
Confidence
85% confidence
Finding
The module metadata markets the package as an 'OpenClaw Wealth Guide' and a 'money-making tool', which materially conflicts with the declared skill purpose of a general data collection/export utility. In an agent ecosystem, misleading branding can conceal the true purpose of a skill, reduce operator trust, and increase the risk that users enable a capability they did not intend to install or review.

Intent-Code Divergence

Medium
Confidence
98% confidence
Finding
`validate_adapter_config` is annotated to return `Dict[str, Any]`, but `Any` is not imported from `typing`. In Python versions/environments where annotations are evaluated at function definition time, this can raise a `NameError` on import, causing the module to fail to load and producing a denial-of-service condition for any workflow that depends on this factory.

Description-Behavior Mismatch

Medium
Confidence
89% confidence
Finding
This client exposes broad OpenClaw platform-management actions that go well beyond the stated purpose of a data harvesting, processing, and export tool. That capability expansion increases the attack surface and enables the skill to manipulate platform state if the component is invoked with a valid API key, violating least-privilege expectations for this skill context.

Context-Inappropriate Capability

High
Confidence
96% confidence
Finding
The ability to install, uninstall, and execute arbitrary skills gives this component effective control over other code or automations on the platform, which is highly sensitive and unrelated to its declared function. In a data-harvesting skill, these methods could be abused to deploy unwanted functionality, trigger privileged actions, or disrupt existing services if an attacker gains access to the client or its credentials.

Context-Inappropriate Capability

High
Confidence
95% confidence
Finding
Uploading skill packages allows introducing new executable or deployable content into the platform, which is a powerful administrative capability unrelated to harvesting data. In this context, it creates a path for unauthorized code deployment or persistence if the API key is misused, making the mismatch between declared purpose and actual capability especially dangerous.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The README advertises web scraping, API access, database querying, file reads, exports, and scheduled execution, but does not warn users that the skill can access external resources, collect potentially sensitive data, and write data to local storage on an ongoing basis. In an agent skill context, this omission can cause users to authorize broad data collection or persistence without understanding privacy, security, and compliance implications.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The skill promotes web, API, database, and file harvesting without warning about sensitive data collection, credential handling, or export risk. For a tool whose core purpose is broad data access, missing privacy and safety disclosures increases the chance of users collecting confidential data or exposing secrets during automated processing.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The examples encourage scheduled collection and local export but omit warnings that recurring tasks may continuously access remote systems and that exports may overwrite or create files on disk. In an automation context, this can cause unintended persistence, repeated data exfiltration, or accidental modification of local files.

Missing User Warnings

Medium
Confidence
81% confidence
Finding
This skill explicitly supports web/API/database/file collection plus automated export, and the manifest includes an auth object without any user-facing warning about handling credentials, sensitive data, or operational impact. In a data-harvesting context, missing privacy and security disclosures increases the chance that users supply secrets or collect/export sensitive data without understanding retention, destination, or scheduling consequences.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The database adapter executes a query string taken from configuration via SQLAlchemy text(query), which allows arbitrary SQL execution if the configuration or upstream input is attacker-controlled. In a data-harvesting skill that connects to external databases, this can lead to unauthorized data extraction, destructive statements, or abuse of privileged database credentials.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 安装: pip install -r requirements-dev.txt

# 测试框架
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-mock>=3.10.0
pytest-asyncio>=0.21.0
Confidence
92% confidence
Finding
Using an unpinned development dependency like pytest>=7.0.0 allows future versions to be installed implicitly, which can introduce breaking changes or newly disclosed vulnerabilities into the build/test environment. In a dev-tooling context this is lower risk than runtime production dependencies, but it still weakens supply-chain reproducibility and can expose CI or developer workstations.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 测试框架
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-mock>=3.10.0
pytest-asyncio>=0.21.0
Confidence
92% confidence
Finding
An unpinned dependency such as pytest-cov>=4.0.0 makes development environments non-reproducible and can silently pull in newer releases with defects or vulnerable transitive dependencies. The direct impact is limited because this is a dev dependency, but it still increases supply-chain risk in CI and local environments.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 测试框架
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-mock>=3.10.0
pytest-asyncio>=0.21.0

# 代码质量和风格
Confidence
92% confidence
Finding
pytest-mock>=3.10.0 permits uncontrolled upgrades in the development toolchain, reducing build reproducibility and increasing exposure to unexpected malicious or vulnerable package releases. Since this is used for testing rather than production runtime, the practical impact is low but real for developer and CI security.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-mock>=3.10.0
pytest-asyncio>=0.21.0

# 代码质量和风格
black>=23.0.0
Confidence
92% confidence
Finding
Leaving pytest-asyncio unpinned allows future versions to enter the environment without review, which can destabilize testing or introduce vulnerable code paths into CI/developer systems. This is mainly a supply-chain hygiene issue rather than an immediately exploitable flaw in the application itself.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pytest-asyncio>=0.21.0

# 代码质量和风格
black>=23.0.0
flake8>=6.0.0
isort>=5.12.0
mypy>=1.0.0
Confidence
95% confidence
Finding
black>=23.0.0 is unpinned and the file also flags Black as having known advisories, so allowing any version above a floor increases the chance of installing a vulnerable or incompatible release. Because formatters commonly run in developer and CI contexts with repository access, compromise or abuse can affect source trees and build systems.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 代码质量和风格
black>=23.0.0
flake8>=6.0.0
isort>=5.12.0
mypy>=1.0.0
pre-commit>=3.0.0
Confidence
92% confidence
Finding
Unpinned flake8 dependencies reduce determinism and can bring in unexpected future releases or vulnerable transitive packages. As a linting tool this is mostly a dev/CI supply-chain concern, not a direct production exploit path.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 代码质量和风格
black>=23.0.0
flake8>=6.0.0
isort>=5.12.0
mypy>=1.0.0
pre-commit>=3.0.0
Confidence
92% confidence
Finding
isort>=5.12.0 allows uncontrolled upgrades that may introduce defects or vulnerable transitive dependencies into build and developer systems. The context is development tooling, so the exposure is lower than runtime dependencies but still relevant for supply-chain integrity.

Unpinned Dependencies

Low
Category
Supply Chain
Content
black>=23.0.0
flake8>=6.0.0
isort>=5.12.0
mypy>=1.0.0
pre-commit>=3.0.0

# 文档生成
Confidence
92% confidence
Finding
An unpinned mypy requirement makes developer and CI environments less reproducible and may introduce unreviewed code. While type-checkers are low-risk relative to production libraries, they still execute in trusted environments and should be version-controlled.

Unpinned Dependencies

Low
Category
Supply Chain
Content
flake8>=6.0.0
isort>=5.12.0
mypy>=1.0.0
pre-commit>=3.0.0

# 文档生成
sphinx>=7.0.0
Confidence
92% confidence
Finding
pre-commit>=3.0.0 can pull in newer releases and plugin ecosystems without strict review, increasing supply-chain exposure in developer workflows. The impact remains low because this is development infrastructure, but compromise here can still affect source code and commits.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pre-commit>=3.0.0

# 文档生成
sphinx>=7.0.0
sphinx-rtd-theme>=1.3.0
myst-parser>=2.0.0
Confidence
92% confidence
Finding
Unpinned documentation tooling such as sphinx>=7.0.0 can introduce unreviewed updates into docs builds and CI environments. This is a supply-chain hardening issue with comparatively low direct exploitability in this context.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 文档生成
sphinx>=7.0.0
sphinx-rtd-theme>=1.3.0
myst-parser>=2.0.0

# 构建和发布
Confidence
92% confidence
Finding
sphinx-rtd-theme>=1.3.0 allows future versions to be installed implicitly, which reduces reproducibility and may import vulnerable transitive dependencies into docs pipelines. In a dev/docs context the risk is low but still part of supply-chain hygiene.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 文档生成
sphinx>=7.0.0
sphinx-rtd-theme>=1.3.0
myst-parser>=2.0.0

# 构建和发布
build>=0.10.0
Confidence
92% confidence
Finding
myst-parser>=2.0.0 is an unpinned docs dependency that may silently change behavior or pull in vulnerable updates. Because it runs in build/documentation workflows rather than the shipped application, the impact is limited but not zero.

Unpinned Dependencies

Low
Category
Supply Chain
Content
myst-parser>=2.0.0

# 构建和发布
build>=0.10.0
twine>=4.0.0
wheel>=0.40.0
Confidence
92% confidence
Finding
build>=0.10.0 permits open-ended upgrades to a packaging tool that operates in trusted build contexts. This weakens reproducibility and can expose CI/release pipelines to supply-chain issues.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 构建和发布
build>=0.10.0
twine>=4.0.0
wheel>=0.40.0

# 其他开发工具
Confidence
92% confidence
Finding
twine>=4.0.0 is unpinned in a release/publishing toolchain, which is more sensitive than ordinary dev tooling because it can handle package artifacts and publication credentials. An unreviewed or compromised version could affect release integrity or secrets used during publishing.

Unpinned Dependencies

Low
Category
Supply Chain
Content
# 构建和发布
build>=0.10.0
twine>=4.0.0
wheel>=0.40.0

# 其他开发工具
ipython>=8.15.0
Confidence
96% confidence
Finding
wheel>=0.40.0 is both unpinned and separately flagged with known vulnerabilities, making this more than a generic reproducibility issue. Since wheel participates in package building and artifact handling, vulnerable versions can affect build integrity and potentially file-system safety in CI or developer environments.

Static analysis

No suspicious patterns detected.