Back to skill

Security audit

APM 상품 관리 API

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent APM product-management API reference, but it needs review because it can change or delete live catalog data and its docs lack adequate safeguards for credentials and destructive actions.

Review this skill before installing if the token has seller/admin privileges. Use a limited APM token where possible, keep APM_USER_TOKEN out of prompts and logs, require explicit confirmation before any add/edit/delete/price/stock/discount call, and verify the correct delete method with the API owner before enabling deletion workflows.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:20
Finding

Predictable Hard-Coded MD5 Request Signatures Provide No Effective Request Integrity

Content
View full analysis
`, `lang=zh-cn` - **인증 헤더**: `authcode: "HH " + access_token` (로그인 계열 제외) - **서명**: `sign = MD5( + ).toUpperCase()` — 엔드포인트별 salt는 각 문서 참조 ``` `gds_m_addgoods.md:9-12`: ```markdown 【호출 흐름】 1. authcode: \"HH \" + 판매자 access_token (반드시 \"HH \" 접두사 필요) 2. sign: MD5('as0jusem$asldk').toUpperCase() 3. POST JSON body ``` `gds_m_goodsclasslist.md:5-9`: ```markdown 【호출 흐름】 1. 공통 헤더 설정: v=7.0.1, p=1, t=현재 Unix 타임스탬프, lang=zh-cn 2. authcode 설정: \"HH \" + 판매자 access_token (반드시 \"HH \" 접두사 필요, 그렇지 않으면 401 반환) 3. sign 계산: MD5('jskdn$dh3hjsb').toUpperCase() (고정 솔트값, 파라미터 결합 안 함) 4. GET 요청, query 파라미터 없음 ``` The same pattern appears throughout the endpoint documentation, including seller operations that create, delete, or modify product prices and inventory. ### Technical Analysis The documented signing constants are embedded directly in the Skill and are therefore available to every user who can obtain the package. Several endpoint instructions calculate MD5 over only a fixed string. Such a digest is constant across all requests to that endpoint and is not cryptographically bound to the HTTP method, path, request body, access token, timestamp, or nonce. This construction cannot provide request authenticity or integrity. Anyone who knows the documented constant can calculate the expected digest. A captured signature can also be replayed without modification. MD5 is additionally unsuitable for modern cryptographic authentication, but the more fundamental problem is that the construction is an unkeyed, request-independent hash. The `authcode` ...[truncated 1547 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
gds_m_delgoods.md:20
Finding

Destructive Product Deletion Endpoint Has Contradictory and Potentially Unsafe HTTP Method Documentation

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (35)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The documentation discloses a fixed signing secret (MD5('jsk@jie4ehjsb').toUpperCase()) that appears to be shared across requests. Embedding a static secret in publicly accessible or widely distributed skill documentation enables unauthorized parties to forge the expected signature, weakening request authentication and making abuse of the API substantially easier.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The documentation exposes a fixed signing secret (MD5('jsm6y$nu5wjsb')) that appears to be shared across clients and sufficient to generate a valid request signature. Publishing embedded signing material in a skill makes unauthorized API use and replay by anyone with the doc much easier, and MD5-based static signing provides little real protection once disclosed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill instructs users to obtain and pass an access token in the authcode header but provides no warning that this credential is sensitive or that it must not be logged, echoed, or exposed in examples. In agent-driven environments, omission of credential-handling guidance can lead to token leakage through logs, prompts, traces, screenshots, or downstream tool calls.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The common request header specifies lang=zh-cn, which forces a specific locale. The file does not indicate that users may choose another language or that the Chinese locale is mandatory for a justified region-specific reason, which matches the natural-language locale policy violation criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill exposes multiple destructive and state-changing endpoints such as add, edit, and delete operations without clearly warning users that these actions can modify inventory, pricing, discounts, or permanently remove products. In an agent context, this increases the risk of accidental or unsafe invocation, especially if the model acts on ambiguous prompts or operates with broad seller credentials.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This skill documents a destructive product deletion action without clearly warning that the operation may be irreversible or require confirmation/backup. In an agent context, that increases the chance of accidental or automated deletion of seller inventory, especially because the endpoint is write-scoped and intended for authenticated sellers managing live goods.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill documentation is internally inconsistent: the main procedure says to invoke a POST with a request body, while the Quick Reference labels the endpoint as GET. For a destructive seller-side delete operation, this mismatch can cause clients, SDKs, or automated agents to call the endpoint incorrectly, potentially placing delete parameters in URLs, breaking authorization/signing assumptions, or triggering unintended deletion behavior if backend method handling is lax.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This skill documents a write-capable endpoint that changes product pricing behavior by modifying discount rates, but it does not include a clear user-facing warning about the business impact or the need for explicit confirmation before execution. In an agent context, missing safety guidance increases the chance of unintended price changes, which can directly affect revenue, promotions, and customer trust if the action is triggered automatically or misunderstood.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This skill exposes a write-capable API that directly changes product sale prices, but the description does not warn users about the business consequences of misuse, such as unintended price changes, revenue loss, or disruption of live listings. Because the skill is seller-facing and non-public yet operationally sensitive, the missing warning increases the chance of accidental harmful use by authorized users or downstream agents.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file documents a write operation that bulk changes SKU sale_price and stock_count, which can directly affect live listings and business data. The description explains parameters and request flow but does not warn users that the action changes existing product pricing/inventory or advise verification before execution.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The description instructs callers to set lang=zh-cn, which imposes a specific language/locale. The file does not provide any opt-in, alternative locale handling, or justification that the skill is intentionally region-specific, so this is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The markdown body again directs the caller to use lang=zh-cn, reinforcing a mandatory locale choice. Because no user choice or explicit justification is provided elsewhere in the file, this conflicts with the stated policy criteria for language/locale handling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file instructs use of a seller access token via the authcode header, which is a sensitive credential. The description explains how to send it but does not include any warning about protecting the token, avoiding exposure in logs, or ensuring authorized use.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file documents sending a seller access token as part of the request, which is a credential-related operation. The description explains how to construct the header but does not warn users that the skill will use and transmit authentication credentials to an external API.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill embeds authentication usage details, including a static request-signing value derived from a hardcoded string and instructions to pass a seller access token, but provides no warning about protecting those secrets in prompts, logs, or client-side tooling. In an agent setting, this increases the chance that tokens or signing material are mishandled, exposed, or reused insecurely, especially because the API is administrative/seller-facing rather than purely public read-only data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documents a state-changing POST endpoint that creates a new product record, but it does not explicitly warn the caller that invoking it will modify production data. In an agent setting, insufficient emphasis on side effects can lead to unintended inventory/catalog changes, spam product creation, or misuse of a user token to perform writes the user did not clearly authorize.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The documentation instructs use of a user access token in the authcode header but provides no guidance on secure handling, storage, logging avoidance, or redaction. In an agent-skill context, this increases the chance that downstream tools or users will expose bearer-style credentials in prompts, traces, debug logs, or shared examples, enabling unauthorized API access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly instructs users to submit complaint screenshots as either base64 data or a URL to a remote API, but it does not warn that these images may contain sensitive personal or device information and will be transmitted off-device. This can lead to inadvertent disclosure of personal data, account details, order information, or metadata embedded in screenshots, especially because the feature is user-facing and encourages attachment of evidence.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file states that a user access_token is required and shows it being placed into the authcode for a GET request, but it does not include any warning about sensitive credential handling, privacy implications, or transmission to the remote API. Under SQP-2 for markdown files, descriptions that involve user data or privacy-affecting behavior should disclose that behavior to the user.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file instructs use of a user access_token as an auth header component, but it does not warn users about the sensitivity of the token or the privacy implications of sending it to the listed API endpoint. Under the markdown-specific missing-warning rule, credential use that could affect user data or privacy should be accompanied by a warning or disclosure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documents a user-triggered deletion endpoint but does not clearly warn that the action is destructive and potentially irreversible. In an agent or automation context, this increases the chance of accidental bulk deletion of user goods IDs, especially because the API explicitly supports batch processing.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file’s descriptive instructions and operational details are presented only in Korean, which can force a specific language on users without opt-in. The policy allows locale constraints when they are explicitly documented and justified, but this file does not state that the skill is intentionally Korean-only or region-specific in language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file instructs callers to set lang=zh-cn as part of the required request headers, which imposes a specific locale. The documentation does not offer an alternative language/locale selection or explain why Chinese is mandatory, so this is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

In the main markdown body, the skill again directs the caller to use lang=zh-cn, reinforcing a fixed locale requirement. Because no choice, fallback, or region-specific justification is provided, this conflicts with the language/locale policy guidance.

Content

No source excerpt is available for this finding.