Back to skill

Security audit

HTTP客户端

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward HTTP client skill; it can send user-provided requests to external services, which is expected for its purpose but should be used carefully with secrets.

Install only if you need a general-purpose HTTP/API helper. Treat any URL, header, request body, bearer token, API key, or basic-auth value as data that may be sent to the chosen remote service, and prefer environment variables or a secret manager for real credentials.

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill description does not warn users that entered data, headers, tokens, and request bodies may be transmitted to external HTTP endpoints. In a skill explicitly designed to contact arbitrary remote services, lack of disclosure increases the risk that users will provide sensitive information without realizing it will leave the local environment.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation phrases are extremely broad (e.g. 'HTTP', '发请求', '请求API') and can be triggered during normal conversation, causing unintended invocation of a network-capable skill. Because this skill can send arbitrary outbound requests with custom headers and bodies, accidental activation materially increases the chance of unintentional data transmission or misuse.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This example demonstrates sending an Authorization bearer token to an external endpoint and normalizes use of embedded credential material in skill examples. Even though the token is placeholder-formatted, the pattern encourages operators to paste real secrets into requests, and the client also stores request metadata in history, increasing exposure risk during use.

Content

Scanner excerpt · SKILL.md (reported line 169)May include surrounding context.

md
# 带认证的请求
auth_resp = client.request(HTTPRequest(
    method="GET",
    url="https://api.github.com/user",
    auth="Bearer ghp_xxxxxxxxxxxx"
))

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · SKILL.md (reported line 175)May include surrounding context.

md
# GraphQL
gql = client.graphql(
    "https://api.github.com/graphql",
    "{ viewer { login name } }"
)
print(f"GraphQL -> {gql.status}")

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · SKILL.md (reported line 196)May include surrounding context.

md
# GraphQL
gql = client.graphql(
    "https://api.github.com/graphql",
    "{ viewer { login name } }"
)
print(f"GraphQL -> {gql.status}")

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This example shows use of a bearer token for an external API and implicitly encourages users to provide live API secrets to the skill. Given that the skill supports arbitrary outbound requests and stores request history, this creates a substantial risk of credential disclosure, accidental exfiltration, or insecure operational use.

Content

Scanner excerpt · SKILL.md (reported line 204)May include surrounding context.

api = HTTPClient() api.request(HTTPRequest( method="GET", url="https://api.openai.com/v1/models", auth="Bearer sk-xxxxxxxxxxxx" ))

text