Back to skill

Security audit

alphashop-image

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its stated AlphaShop image-processing purpose, but users should know it sends image URLs and related parameters to AlphaShop using configured credentials.

Install this only if you intend to use AlphaShop's remote image-processing service. Treat submitted image URLs as content shared with AlphaShop, avoid sensitive or regulated images unless your organization approves, prefer short-lived public URLs, protect the AlphaShop keys, and lock/audit the Python dependencies for 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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (17)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README promotes remote image-processing features but does not clearly disclose that user-supplied image URLs and image content are transmitted to AlphaShop’s external service. This can lead users to unknowingly send sensitive images, embedded text, or metadata to a third party, creating privacy, confidentiality, and compliance risks.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
96% confidence
Finding

The skill documents use of environment variables and outbound API calls, but it does not declare any explicit tool scope such as permissions or allowed-tools. That weakens execution boundaries and reviewability, increasing the chance the skill can access secrets or perform network actions without clear policy constraints.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger phrases are broad and loosely bounded, covering generic image-editing requests such as translation, enlargement, background removal, and watermark detection/removal. This can cause accidental invocation in contexts the user did not intend, leading to unreviewed transmission of images and use of third-party processing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation instructs users to provide image URLs and API keys to send content to a third-party AlphaShop service, but it does not warn that images may contain personal, proprietary, or regulated data that will leave the local environment. Without a privacy notice and data-handling disclosure, users may unknowingly expose sensitive content or credentials-related metadata to an external processor.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The example defaults to a specific race-based model transformation ('WHITE') rather than presenting neutral, user-selected options. In context this is not a classic code-execution flaw, but it creates a harmful default for a sensitive biometric/appearance-changing feature and can normalize biased or inappropriate use.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation instructs clients to send externally hosted image URLs and bearer tokens to a third-party API but provides no warning that user images, embedded metadata, and credentials are being shared outside the local system. In an image-processing skill, this omission can lead operators to unknowingly expose sensitive or proprietary images to an external service, increasing privacy, compliance, and data-handling risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This endpoint documentation explicitly requires publicly accessible image URLs but does not warn users that making images public or retrievable by a third-party service may expose private content. Given the skill's purpose is bulk image manipulation, users may submit customer, catalog, or internal assets and unintentionally disclose them to external infrastructure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This code posts user-supplied image URLs and related request data to the AlphaShop remote service, which is a privacy-relevant network operation. Although the module docstring names the API and auth mechanism, there is no explicit warning or disclosure in the command help or runtime output that user data will be sent to an external service.

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

python
url = f"{BASE_URL}{path}"
    headers = {"Content-Type": "application/json", "Authorization": f"Bearer {get_token()}"}
    try:
        r = requests.post(url, json=body, headers=headers, timeout=120)
        r.raise_for_status()
        return r.json()
    except requests.exceptions.HTTPError as e:

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README instructs users to place API credentials in configuration but does not warn them to protect those secrets, avoid committing them to source control, or rotate them if exposed. This increases the chance of accidental credential leakage and unauthorized use of the AlphaShop account.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
75% confidence
Finding

The file is entirely written in Chinese and does not indicate any language choice or opt-in for users who may expect documentation in another locale. Per SQP-3, forcing a specific language without user choice can be a natural-language policy concern when no regional limitation or justification is documented.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
93% confidence
Finding

The dependency specifier requests>=2.20.0 is unpinned, so builds may resolve to different versions over time and can unexpectedly include vulnerable or incompatible releases. In a skill that performs image-processing API calls, requests is likely security-relevant because it handles outbound HTTP and may process attacker-influenced URLs, tokens, or credentials.

Content

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

text
requests>=2.20.0
PyJWT>=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, there is no way to verify that deployment will avoid affected releases. This is particularly relevant for an image-processing integration skill, where HTTP client behavior can affect credential handling, TLS verification, redirects, and SSRF-adjacent request flows.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
92% confidence
Finding

The dependency specifier PyJWT>=2.0.0 is unpinned, which makes the installed version non-deterministic and prevents verifying whether a vulnerable release may be selected. Because this skill likely authenticates to external APIs, JWT handling is security-sensitive and version drift can expose token-validation or key-handling flaws.

Content

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

text
requests>=2.20.0
PyJWT>=2.0.0

Unverifiable Dependency: PyJWT has 16 known advisory(ies) (CVE-2026-32597 (PyJWT accepts unknown `crit` header extensions); CVE-2024-53861 (PyJWT Issuer field partial matches allowed); CVE-2026-48522 (PyJWKClient: missing scheme allowlist enables CVE-2024-21643-class SSRF + token ) +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
88% confidence
Finding

PyJWT has known security advisories, and the lack of pinning means the runtime may resolve to a vulnerable version without visibility or reproducibility. In a skill that likely signs or validates authentication tokens for API access, JWT library flaws can have direct security consequences such as improper issuer validation, SSRF via key retrieval helpers, or acceptance of malformed tokens.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The code reads ALPHASHOP_ACCESS_KEY and ALPHASHOP_SECRET_KEY from the environment and uses them to generate authentication tokens for outbound API calls. While the top-level docstring mentions the env vars, it does not clearly warn users that credentials are being consumed for remote authentication, which is the kind of sensitive operation this rule targets.

Content

No source excerpt is available for this finding.

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Confidence
50% confidence
Finding

Dynamic getattr() with a non-literal attribute name can access arbitrary object attributes, potentially bypassing access controls.

Content

Scanner excerpt · scripts/alphashop_image.py (reported line 145)May include surrounding context.

python
"noobj_qrcode": "noobjRemoveQrcode",
    }
    for attr, key in flag_map.items():
        val = getattr(args, attr, None)
        if val:
            body[key] = val
    print(json.dumps(call_api("/ai.image.imageElementRemove/1.0", body), ensure_ascii=False, indent=2))

Static analysis

No suspicious patterns detected.