Back to skill

Security audit

Amazon Fba Finder

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Amazon FBA product-research calculator with no evidence of hidden execution, persistence, exfiltration, or destructive behavior.

Install only if you are comfortable providing marketplace API keys and product research queries to the configured services. Treat the financial outputs as estimates, validate inputs manually, and prefer pinned dependency versions or a reviewed lockfile before production use.

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)

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Unbounded and Unnecessary Third-Party Dependencies Expand the Supply-Chain Attack Surface

Content
View full analysis
=2.31.0 beautifulsoup4>=4.12.0 pandas>=2.0.0 numpy>=1.24.0 python-dotenv>=1.0.0 aiohttp>=3.9.0 ``` The associated installation instruction appears at `README.md:113-119`: ```bash skillhub install amazon-fba-finder clawhub install amazon-fba-finder pip install -r requirements.txt ``` ### Technical Analysis Every dependency has only a lower version bound. Consequently, an installation can resolve to any future package version available from the configured Python package index. The project does not provide a lock file, exact version constraints, or package hashes that would allow installers to verify that they are using versions reviewed by the project authors. Only `aiohttp` is imported by the application code. The declared `requests`, `beautifulsoup4`, `pandas`, `numpy`, and `python-dotenv` packages are not used by the reviewed implementation. Installing these unnecessary packages increases the number of maintainers, transitive dependencies, build systems, and package releases that must remain trustworthy. This is not evidence that any currently declared package is malicious. The weakness is that a later compromised or otherwise unsafe release could be selected automatically without a project change or additional review. Source distributions may also execute package-controlled build logic during installation. ### Attack Path 1. A user follows the documented installation procedure and runs `pip install -r requirements.txt`. 2. Pip queries the user's configured package index and selects the newest versions satisfying the lower bounds. 3. A dependency or transitive dependency publishes a compromised future release, or the configured index serves an untrusted artifact. 4. Because there is no upper bound, exact pin, lock file, or hash verification, pip ac ...[truncated 843 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
src/profit_calculator.py:80
Finding

Missing Numeric Input Validation Can Produce Invalid or Misleading Financial Recommendations

Content
View full analysis
ProfitAnalysis: # Calculate FBA fulfillment fee fba_fee = self._calculate_fba_fee(dimensions) # Calculate referral fee referral_fee = selling_price * self.REFERRAL_RATE # Calculate storage fee storage_fee = self._calculate_storage_fee(dimensions) # Calculate advertising cost advertising_cost = selling_price * advertising_pct # Other costs other_costs = selling_price * 0.03 total_cost = CostBreakdown( product_cost=product_cost, shipping_to_amazon=shipping_cost, fba_fee=fba_fee, referral_fee=referral_fee, storage_fee=storage_fee, advertising_cost=advertising_cost, other_costs=other_costs, total_cost=( product_cost + shipping_cost + fba_fee + referral_fee + storage_fee + advertising_cost + other_costs ) ) net_profit = selling_price - total_cost.total_cost profit_margin = (net_profit / selling_price) * 100 if selling_price > 0 else 0 investment = product_cost + shipping_cost roi = (net_profit / investment) * 100 if investment > 0 else 0 fixed_costs = 0 breakeven_units = int(fixed_costs / net_profit) + 1 if net_profit > 0 else 999999 monthly_profit = net_profit * monthly_sales recommendation = self._generate_recommendation( profit_margin, roi, net_profit, monthly_sales ) ``` The recommendation logic at `src/profit_calculator.py:206-221` relies direc ...[truncated 3168 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (26)

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

配置 API 密钥

bash
# .env 文件
AMAZON_API_KEY=your_amazon_api_key
ALIBABA_API_KEY=your_alibaba_api_key
MARKETPLACE=US  # US/UK/DE/JP/CA/AU

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documentation switches into Chinese for the main skill description and continues that pattern across most sections, which effectively forces a specific language on users. The file does not state that the skill is intended only for a Chinese-speaking audience or offer an alternative language/version despite the policy allowing explicit choice or justified locale constraints.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly instructs users to configure Amazon and Alibaba API keys and describes calls to external services, but it does not clearly warn that product queries and related user-supplied data will be transmitted to third-party APIs. This can cause users to expose sensitive business research, marketplace strategy, and credentials without informed consent, especially in an agent environment where data flow may not be obvious.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This manifest includes the primary skill description in Chinese, which can impose a specific language on users without any indication that language is selectable or optional. The policy requires language or locale constraints to be opt-in or clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The skill description under the OpenClaw manifest is presented only in Chinese, and the file does not mention any user-selectable language behavior or region-specific justification. This creates a natural-language policy concern because the skill appears to enforce a language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module docstring and class/method documentation are presented in Chinese, which effectively forces a specific language for users or maintainers reading the skill. The file does not indicate that Chinese is optional, user-selected, or required for a justified region-specific purpose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code file contains user-facing natural-language documentation and comments that force a specific language context, which can violate language/locale policy when no user opt-in or regional justification is provided. The module docstring presents the skill exclusively in Chinese and does not indicate that other languages are supported.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This file includes natural-language descriptions and output text exclusively in Chinese, such as the module docstring and recommendation messages. Because the skill does not provide user opt-in, language selection, or a documented region-specific justification, it may violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The recommendation generator returns fixed Chinese messages for all result states, which forces a specific language on end users. The file does not indicate any opt-in mechanism or locale-specific constraint that would make this acceptable under the stated policy.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The module docstring and user-facing descriptions are entirely in Chinese, which effectively imposes a specific language on users or maintainers without any opt-in or stated regional justification. The policy requires flagging language or locale constraints when the skill does not offer a choice or clearly document why the constraint exists.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This test file uses Chinese in the module docstring, comments, and test descriptions, which indicates the skill content is effectively fixed to a specific language. The policy allows locale constraints only when user choice is offered or the constraint is clearly documented and justified, neither of which appears here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
70% confidence
Finding

All user-facing documentation and examples are presented in Chinese, and the file does not indicate that language is optional or user-selectable. Under the stated policy, forcing a specific language or locale without opt-in can be a natural-language policy issue unless the constraint is documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest's primary user-facing description is entirely in Chinese, which indicates a language-specific experience without stating that users can choose another language. Under the policy rule, forcing a specific language without opt-in is a natural-language locale violation unless the constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

The dependency is specified with a lower-bound version only, so builds may resolve to different releases over time. That weakens reproducibility and can unintentionally introduce vulnerable or incompatible versions from the package index or transitive dependency graph.

Content

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

text
requests>=2.31.0
beautifulsoup4>=4.12.0
pandas>=2.0.0
numpy>=1.24.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
94% confidence
Finding

The manifest does not pin requests, and the package has multiple known advisories across its release history. Because the exact installed version is unknown, it is impossible to verify from this file alone whether deployments avoid affected versions, creating a real dependency hygiene and supply-chain risk.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

The dependency is not fully pinned, so installation results can vary across environments and over time. This increases supply-chain risk because a later release could introduce a security issue or breaking change without any change to this manifest.

Content

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

text
requests>=2.31.0
beautifulsoup4>=4.12.0
pandas>=2.0.0
numpy>=1.24.0
python-dotenv>=1.0.0

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

Using only a minimum version for pandas makes the installed package unverifiable and non-reproducible. That can expose deployments to newly published vulnerable versions or unexpected behavior changes.

Content

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

text
requests>=2.31.0
beautifulsoup4>=4.12.0
pandas>=2.0.0
numpy>=1.24.0
python-dotenv>=1.0.0
aiohttp>=3.9.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
90% confidence
Finding

Pandas has known advisories in some versions, but this file allows any version at or above 2.0.0 without fixing the exact release. That makes the deployed security posture unverifiable and weakens assurance that all environments are using a safe build.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

The numpy requirement is not pinned to a single version, so consumers may install different releases depending on resolution time and environment. This creates avoidable supply-chain uncertainty and complicates proving that a safe version is in use.

Content

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

text
requests>=2.31.0
beautifulsoup4>=4.12.0
pandas>=2.0.0
numpy>=1.24.0
python-dotenv>=1.0.0
aiohttp>=3.9.0

Unverifiable Dependency: numpy has 16 known advisory(ies) (CVE-2014-1859 (Numpy arbitrary file write via symlink attack); CVE-2021-41495 (NumPy NULL Pointer Dereference); CVE-2021-33430 (NumPy Buffer Overflow (Disputed)) +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
94% confidence
Finding

NumPy has had multiple advisories, and this requirement does not identify which exact release will be installed. Without exact pinning, different environments may resolve differently, making it impossible to confirm exposure status from the manifest.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

A lower-bound-only requirement for python-dotenv allows future or environment-specific versions to be installed without review. If a vulnerable release is resolved, the application could inherit that risk despite no source-code change.

Content

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

text
beautifulsoup4>=4.12.0
pandas>=2.0.0
numpy>=1.24.0
python-dotenv>=1.0.0
aiohttp>=3.9.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
95% confidence
Finding

python-dotenv has known advisories in parts of its version history, yet the manifest leaves the exact installed version open-ended. This is dangerous because the package often interacts with local configuration files and environment handling, so a vulnerable release could affect sensitive configuration paths.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

The aiohttp package is unpinned, which makes dependency resolution nondeterministic and increases exposure to future vulnerable releases. In network-facing software, this uncertainty is particularly undesirable because library behavior often affects request parsing and transport security.

Content

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

text
pandas>=2.0.0
numpy>=1.24.0
python-dotenv>=1.0.0
aiohttp>=3.9.0

Unverifiable Dependency: aiohttp has 16 known advisory(ies) (CVE-2024-52303 (aiohttp has a memory leak when middleware is enabled when requesting a resource ); CVE-2026-54279 (aiohttp: Host-Only Cookies Become Domain Cookies After CookieJar Persistence); CVE-2026-34514 (AIOHTTP has CRLF injection through multipart part content type header constructi) +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
95% confidence
Finding

aiohttp has multiple known advisories, and the unpinned requirement prevents determining whether the installed release is vulnerable. Because aiohttp is typically used in network-facing contexts, unresolved version ambiguity can have security consequences in request handling, cookie management, or protocol parsing.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The file presents the skill name and author metadata in Chinese only, which can indicate a language-specific experience without any visible opt-in, fallback, or justification. The policy for this audit flags natural-language locale constraints when a skill appears to force a specific language absent user choice.

Content

No source excerpt is available for this finding.