Back to skill

Security audit

Miles

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed read-only integration with Ask Miles that uses user-approved credentials to answer card and points questions from the user's Miles wallet.

Install only if you are comfortable giving your agent access to Ask Miles answers based on your Miles wallet. Treat any Ask Miles API key or OAuth refresh token as a secret, revoke it from Ask Miles settings if no longer needed, and avoid sending unrelated personal details in questions.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (2)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
one who configured it: an installed app with many users, not a personal
agent. OAuth 2.1 against `mcp.askmiles.ai`, scope `miles:chat`, with dynamic
client registration. The grant belongs to the Miles account of the person who
approves it, and requires a one-time browser consent. Access tokens expire
after one hour, so store the refresh token and refresh.

**Getting a token: follow this recipe, don't improvise.** In particular, do

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
`client_id`, `client_secret`, `code_verifier`. The response carries the
   Bearer `access_token` (one hour), `scope: miles:chat`, and a
   `refresh_token`.
6. **Refresh, never re-consent.** When the access token expires, POST the
   token endpoint with `grant_type=refresh_token` and your stored
   credentials. The browser step never repeats unless the owner revokes the
   grant (Settings → Connected AI Apps on askmiles.ai).