Back to skill

Security audit

301重定向检查

Security checks for vulnerabilities and agentic risk

Overview

This skill is labeled as a 301 redirect checker, but its artifacts mainly create paid remote analysis orders and send user input and credentials to an external service.

Review this carefully before installing. Treat it as a paid third-party analysis client, not a local 301 redirect checker. Do not submit internal URLs, confidential site data, secrets, or credentials unless you trust the provider and payment flow; avoid passing credentials on the command line.

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 (3)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/get_result.sh:3
Finding

Credential Exposed Through Command-Line Arguments

Content
View full analysis
ORDER_NO="${1:?Usage: ./get_result.sh }" CREDENTIAL="${2:?Missing credential}" ``` ### Technical Analysis The result-retrieval credential is accepted as the second positional command-line argument. Secrets passed this way may be exposed through: - Shell command history. - Process-monitoring tools while the script is running. - Operating-system process metadata, depending on local access controls. - Terminal session recording, audit logging, or automation logs. - Wrapper scripts and CI/CD systems that log complete commands. The README also instructs users to supply the credential directly on the command line, making exposure part of the documented workflow rather than an exceptional use case. ### Attack Path 1. A user invokes `get_result.sh` with a valid credential as the second argument. 2. The shell records the command in its history, or the running command becomes visible in process metadata. 3. Another local account, monitoring component, compromised process, or log reader obtains the credential. 4. The attacker submits the captured credential and associated order information to the result API. 5. If the server does not bind the credential sufficiently to the original user or enforce single use, the attacker can retrieve the paid result or impersonate the credential holder. ### Impact Assessment An attacker may gain unauthorized access to paid analysis results and any sensitive request content returned with them. Exposure is limited to the credential's server-side permissions; this flaw does not directly grant operating-system privileges or establish persistence. The practical scope depends on whether credentials are ...[truncated 81 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/analyze.sh:10
Finding

Untrusted Input Interpolated Directly Into JSON Request Bodies

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/get_result.sh:9
Finding

Environment-Controlled API Endpoint Can Redirect Credential-Bearing Requests

Content
View full analysis
Remediation
View remediation
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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (24)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill presents itself as a 301 redirect checker but appears to function mainly as a client for remote order creation/result retrieval using credentials and arbitrary user-supplied queries. This creates a trust-boundary problem: users may unknowingly send sensitive data to a protected third-party service that performs unspecified processing unrelated to the stated task.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill presents itself as a 301 redirect checker but appears to function mainly as a client for remote order creation/result retrieval using credentials and arbitrary user-supplied queries. This creates a trust-boundary problem: users may unknowingly send sensitive data to a protected third-party service that performs unspecified processing unrelated to the stated task.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The documentation claims the skill checks website 301 redirects, but the body markets a broad paid data-analysis/API service. In this context, the mismatch makes the skill more dangerous because it can socially engineer users into providing unrelated datasets or endpoints to an external provider under an SEO-focused label.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The documentation does not clearly warn that user inputs, files, or API endpoints may be transmitted to an external paid service. This is a significant transparency and privacy failure because users cannot make informed consent decisions about data exposure, third-party processing, or potential charges.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · scripts/analyze.sh (reported line 11)May include surrounding context.

sh
# Step 1: Create order
echo "Creating order..."
ORDER_RESP=$(curl -s -X POST "$API_BASE/api/createOrder" \
  -H "Content-Type: application/json" \
  -d "{\"reqData\": {\"question\": \"$QUESTION\", \"serviceId\": \"$SERVICE_ID\"}}")

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill claims to check 301 redirect configuration, but the script merely forwards a free-form user prompt to a third-party API to create a paid order. This is dangerous because it misrepresents the skill’s functionality, can exfiltrate user-supplied data off-platform, and may trigger unexpected financial actions under the guise of a simple analysis utility.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · scripts/get_result.sh (reported line 13)May include surrounding context.

sh
echo "Getting result for order: $ORDER_NO"

RESULT=$(curl -s -X POST "$API_BASE/api/getResult" \
  -H "Content-Type: application/json" \
  -d "{\"reqData\": {\"orderNo\": \"$ORDER_NO\", \"credential\": \"$CREDENTIAL\", \"question\": \"$QUESTION\", \"serviceId\": \"$SERVICE_ID\"}}")

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README instructs users to retrieve paid results with an order number, credential, and requirements, but does not disclose that these values are likely sent to an external provider service. This creates a real transparency and privacy/security issue because users may expose sensitive credentials or request content without informed consent, especially in a paid SaaS-style workflow.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill declares Bash/WebFetch-capable behavior but provides no explicit tool scoping such as allowed-tools or permissions boundaries. In a paid third-party integration context, missing scope restrictions increases the chance of unintended shell or network actions beyond the user’s expected 301 redirect check workflow.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The usage guidance says users can provide requirements and data without clearly limiting what data is appropriate or when the skill should activate. That ambiguity is unsafe here because it can normalize sending arbitrary content to an external service under a misleadingly narrow skill name.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Claiming support for CSV, JSON, Excel, arbitrary API endpoints, and broad custom requirements is disproportionate to a simple 301 redirect checker. This widens the apparent collection scope and encourages users to submit more data than necessary, increasing privacy and data-exfiltration risk through the external service.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The example use cases are generic analysis prompts rather than redirect-check scenarios, which makes accidental or overly broad activation more likely. In a skill tied to external paid processing, misleading examples can cause unnecessary data sharing and unintended charges.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad enough to overlap with common requests for analysis or reporting, so the skill may be invoked outside its intended domain. Because the skill appears to route inputs to a third-party paid service, ambiguous activation increases the risk of surprise data transfer and billing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The API documentation shows that user-supplied analysis content and a credential are sent to a third-party endpoint, but it does not warn users that their prompts and tokens leave the local environment. In a security-analysis skill, this is important because users may submit sensitive URLs, internal findings, or access material without realizing it will be transmitted externally.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

The SDK example explicitly sends user-provided analysis requests to an external domain, which creates a real data-exposure risk if users paste confidential website details, internal URLs, or sensitive assessment content. In the context of a security-related skill, this is more dangerous because users are especially likely to submit non-public infrastructure information for analysis.

Content

Scanner excerpt · references/api-reference.md (reported line 112)May include surrounding context.

md
api_base = "https://xiaomeng-api.qisir.com"

# Create order
resp = requests.post(f"{api_base}/api/createOrder", json={
    "reqData": {
        "question": "your analysis request",
        "serviceId": "301重定向检查"

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This request sends not only the user's analysis request but also an authentication credential to an external service, increasing the sensitivity of the transmission. If users mishandle or overtrust this flow, exposed credentials could permit unauthorized result retrieval or account abuse, and the surrounding docs do not describe protections such as token scope, expiry, or secure handling requirements.

Content

Scanner excerpt · references/api-reference.md (reported line 121)May include surrounding context.

md
order = resp.json()["resultData"]

# After payment, get result
resp = requests.post(f"{api_base}/api/getResult", json={
    "reqData": {
        "orderNo": order["orderNo"],
        "credential": "your_credential",

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
75% confidence
Finding

The script embeds Chinese-language service naming and defaults such as "301重定向检查" without offering a language or locale choice. This may violate language/locale policy expectations because the skill appears to assume a specific language context rather than allowing user opt-in or documenting that it is intentionally region-specific.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

A skill for checking 301 redirects should not inherently require creating external orders and prompting for payment, yet this script’s primary behavior is commercial workflow orchestration. In this context, the mismatch increases the risk of deceptive behavior, unauthorized spend, and user trust abuse because the operational scope is far broader than the stated purpose.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The script performs external transmission of user-controlled content to a third-party endpoint using curl. In the context of a security-analysis skill, this is more dangerous because users may input sensitive website details or internal assessment notes, which are then disclosed outside the local environment.

Content

Scanner excerpt · scripts/analyze.sh (reported line 11)May include surrounding context.

sh
# Step 1: Create order
echo "Creating order..."
ORDER_RESP=$(curl -s -X POST "$API_BASE/api/createOrder" \
  -H "Content-Type: application/json" \
  -d "{\"reqData\": {\"question\": \"$QUESTION\", \"serviceId\": \"$SERVICE_ID\"}}")

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script sends user-provided input in the question field to a remote API without any explicit warning, consent flow, or data handling notice. This creates privacy and confidentiality risk because users may provide internal URLs, infrastructure details, or other sensitive analysis targets assuming the check runs locally.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This script transmits order data, a credential, and a free-form question to an external network service. In the context of an agent skill, external transmission is security-relevant because it can leak secrets or sensitive operational data, and the risk is increased by allowing the base URL to be overridden through an environment variable.

Content

Scanner excerpt · scripts/get_result.sh (reported line 13)May include surrounding context.

sh
echo "Getting result for order: $ORDER_NO"

RESULT=$(curl -s -X POST "$API_BASE/api/getResult" \
  -H "Content-Type: application/json" \
  -d "{\"reqData\": {\"orderNo\": \"$ORDER_NO\", \"credential\": \"$CREDENTIAL\", \"question\": \"$QUESTION\", \"serviceId\": \"$SERVICE_ID\"}}")

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script sends a user-supplied credential to a remote API endpoint without any warning, consent prompt, or clear disclosure to the operator. Although transmission to a backend may be functionally required, silently exfiltrating credentials to an external service increases the risk of unintended secret disclosure, especially because the destination can be changed via the XIAOMENG_API_BASE environment variable.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The title and core description are presented in Chinese, while the main explanatory sections are in English. This creates an implicit language constraint or inconsistency without telling users what language the skill supports or offering a choice, which can violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
75% confidence
Finding

The title and service identifier are presented only as 301重定向检查, and the pricing/payment details are tied to CNY and JD Wallet, indicating a Chinese locale-specific service. The file does not explicitly explain that the skill is region/language-specific or offer an alternative language/locale, which can violate language/locale policy expectations.

Content

No source excerpt is available for this finding.