Back to skill

Security audit

multi-news-aggregator-via x402

Security checks for vulnerabilities and agentic risk

Overview

This news-search skill is mostly coherent, but it asks agents to use an EVM private key to sign paid x402 requests without clear local spending or recipient safeguards.

Install only if you are comfortable with an agent sending news queries to the x402 API and authorizing per-call crypto payments. Use a dedicated low-balance wallet, pin the API origin, set strict spending limits, and require confirmation or local validation of payment terms before signing.

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

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:63
Finding

Unvalidated Remote Payment Authorization

Content
View full analysis
unpaid.headers.get(name), {}, ); const paymentPayload = await httpClient.createPaymentPayload(required); const paid = await fetch(endpoint, { method: "POST", headers: { "content-type": "application/json", ...httpClient.encodePaymentSignatureHeader(paymentPayload), }, body: JSON.stringify(payload), }); ``` ### Technical Analysis The API origin can be changed through environment variables. After the selected server returns an HTTP 402 response, the example passes the server-controlled payment requirements directly to `createPaymentPayload` and signs them using the account derived from `EVM_PRIVATE_KEY`. The example does not explicitly validate critical payment properties before signing, including: - Recipient address - Network or chain identifier - Token or asset - Maximum payment amount - Expiration time - Nonce or replay constraints - Whether the payment terms correspond to the expected service Although the x402 library may perform protocol-level validation, protocol validity is not equivalent to authorization under the user's local payment policy. A syntactically valid payment request can still name an unexpected recipient or request an unacceptable amount. ### Attack Path 1. An attacker compromises the configured API service, alters `X402_API_BASE_URL` or `API_BASE_URL`, or otherwise causes the client to communicate with an attacker-controlled endpoint. 2. The malicious endpoint responds to the initial request with HTTP 402 and attacker-selec ...[truncated 1172 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill routes user search queries to an external third-party API and requires x402 payment processing, but the top-level description does not clearly warn users that their prompts may be transmitted off-platform and may trigger paid requests. This can lead to unintentional data disclosure, unexpected charges, and lack of informed consent when agents use the skill automatically.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The natural-language examples and parameter descriptions set default values of country as US and lang as en, which can steer behavior toward a specific locale without offering user choice. The policy allows locale constraints when justified or opt-in, but this file does not explain why those defaults are required or instruct the agent to ask the user for locale preferences.

Content

No source excerpt is available for this finding.

Scope Creep

Low
Category
Excessive Agency
Confidence
70% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

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

md
## News aggregation coverage (major outlets)

The search can cover web-indexed mainstream media, including but not limited to:

### United States

Static analysis

No suspicious patterns detected.