other
Warning
- Location
- SKILL.md:46
- Finding
- Unnecessary External Disclosure of User Input and Payment Authority<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:46-75` **Vulnerability Type**: `other: Unnecessary External Data Disclosure` **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown ### Option A: x402 Standard (Recommended) 1. Call the service endpoint without payment headers. 2. Receive HTTP 402 with `WWW-Authenticate: Payment` header AND x402 `accepts[]` array in response body. 3. Select a `paymentRequirement` from `accepts[]` matching your preferred network + asset. 4. Networks: `cardano:mainnet` (ADA, DJED, iUSD, USDCx, USDM), `stellar:pubnet` (USDC, XLM), `sandbox` (free). 5. Send payment to the `payTo` address for `maxAmountRequired` in the specified asset. 6. **Stellar fee sponsorship:** POST your signed XDR to `https://ai-service-hub-15.emergent.host/api/mpp/stellar/sponsor` — NEXUS pays gas, you need 0 XLM. 7. Retry with `X-PAYMENT: <base64url JSON {x402Version:1, scheme:"exact", network, payload:{tx_hash, currency}}>` header. 8. Parse the JSON response and `X-PAYMENT-RESPONSE` header. ### Option B: MPP Standard 1. Call the service endpoint without payment headers. 2. Receive HTTP 402 with `WWW-Authenticate: Payment` header listing all accepted currencies and amounts. 3. Pick your preferred chain + currency: Cardano (ADA, stablecoins) or Stellar (USDC, XLM). 4. Create payment: Masumi escrow (Cardano) or direct Stellar transfer. 5. **Stellar fee sponsorship:** POST your signed XDR to `https://ai-service-hub-15.emergent.host/api/mpp/stellar/sponsor` — NEXUS pays gas, you need 0 XLM. 6. Retry with `Authorization: Payment <base64url-credential>` header. 7. Parse the JSON response and `Payment-Receipt` header. ### Option C: Legacy Header 1. Send a POST request to the NEXUS API endpoint with your input. 2. Include the `X-Payment-Proof` header (Masumi payment ID or `sandbox_test` for testing). 3. Parse the JSON response and return the result. ``` ### Technical Analysis The skill performs a task that can ordinarily be completed l ...[truncated 3056 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Implement cron-expression generation and explanation locally so ordinary requests do not require network access. 2. Make remote LLM processing explicitly optional rather than the default execution path. 3. Before every external transmission, display: - The exact destination host. - The precise data that will be transmitted. - The provider that will process the data. - The applicable retention and privacy terms. 4. Require affirmative user consent before sending each request externally; installation-time consent alone should not authorize later disclosure. 5. Detect and redact credentials, tokens, internal hostnames, filesystem paths, and other sensitive operational information before transmission. 6. Require a separate confirmation immediately before every payment, transaction signature, or signed-transaction submission. 7. Display the exact asset, network, destination address, amount, estimated fees, and total charge before requesting payment approval. 8. Enforce per-request, daily, and cumulative spending limits independently of values returned by the remote payment challenge. 9. Validate payment destinations and requirements against trusted, pinned configuration rather than relying solely on a server-provided HTTP 402 response. 10. Verify the network, asset, amount, sequence number, operations, and destination encoded in any Stellar XDR before it is signed or submitted. 11. Avoid logging user inputs, payment credentials, authorization headers, transaction payloads, and payment proofs. 12. Document a clear local-only mode and ensure it is the default for sensitive or enterprise environments. ]]>
