Back to skill

Security audit

ASO Suite

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to be a legitimate ASO Suite CLI helper, but it installs an unpinned global npm executable that authenticates with a long-lived token and can modify or delete ASO account data.

Review this before installing. Prefer a pinned, reviewed `asosuite` version, avoid running the global npm install with administrator privileges, and treat `~/.asosuite/config.json` as sensitive because it contains a long-lived access token. Use extra care with commands that remove, delete, clear, untrack, or unplan ASO data.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:9
Finding
Unpinned Third-Party CLI Package Is Installed Globally<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:9-18`, `SKILL.md:32-35`, and `README.md:7-13` **Vulnerability Type**: Unpinned external dependency installed with global scope **Risk Level**: Medium ### Vulnerable Code `SKILL.md:9-18`: ```yaml 'install': [ { 'id': 'npm', 'kind': 'node', 'package': 'asosuite', 'bins': ['asosuite'], 'label': 'Install asosuite (npm)', }, ], ``` `SKILL.md:32-35`: ```bash npm install -g asosuite asosuite help ``` `README.md:7-13`: ```bash npm install -g asosuite # Check that it's working asosuite help ``` ### Technical Analysis The Skill installs the `asosuite` npm package without specifying an exact version or integrity value. Consequently, the installed code depends on whichever package release the registry resolves at installation time. The artifact contains only documentation and Skill metadata; it does not include the CLI implementation, a lockfile, an integrity hash, or other material that would allow the downloaded executable and installation lifecycle behavior to be audited. The `-g` option installs the executable globally. Depending on the environment and npm configuration, global installation may require elevated permissions or place executable files in a system-wide path. npm installation can also run package lifecycle scripts unless they are explicitly disabled. The documented ASO service legitimately requires network communication and authentication. `README.md:230-239` transparently describes a device authorization flow and storage of a long-lived token in `~/.asosuite/config.json`. No reviewed instruction explicitly exfiltrates that token or other unrelated sensitive information. However, because the downloaded package implementation is absent, its actual network destinations, token handling, file permissions, and local access behavior cannot be verified from this project. ### Attack Path 1. A user or agent loads the Skill and follows its installati ...[truncated 1681 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin `asosuite` to an exact, reviewed version in both Skill metadata and installation examples, such as: ```bash npm install -g asosuite@X.Y.Z ``` Do not use a version range or floating tag. 2. Publish and verify package provenance, including the expected publisher, source repository, release commit, and npm provenance attestation. 3. Provide integrity metadata or a lockfile where the installation framework supports it. Verify the downloaded package against a trusted checksum before execution. 4. Prefer project-local or isolated installation over global installation: ```bash npm install --save-exact asosuite@X.Y.Z ``` Invoke the reviewed local binary rather than modifying a system-wide executable path. 5. Avoid administrative installation. Document that users must not run the npm command with `sudo` or an administrator account. 6. Audit package lifecycle scripts and disable them when they are unnecessary: ```bash npm install --ignore-scripts --save-exact asosuite@X.Y.Z ``` If lifecycle scripts are required, document their purpose and include them in the security review. 7. Include the CLI source or a reference to the exact reviewed source revision so its network behavior, command construction, token storage, and filesystem access can be independently assessed. 8. Store `~/.asosuite/config.json` with owner-only permissions, avoid printing the token in logs or JSON output, and restrict network communication to documented HTTPS endpoints. 9. Add an update-review process so version changes require renewed source review, integrity verification, and explicit approval rather than silently adopting the latest registry release. ]]>
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Credential Access

High
Category
Privilege Escalation
Content
1. CLI asks the server for a short-lived device code.
2. CLI opens your browser at `https://www.asosuite.com/cli/auth?code=...`.
3. You sign in and approve the CLI request.
4. CLI polls the server and receives a long-lived CLI access token.

The token is stored at `~/.asosuite/config.json`.
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Session Persistence

Medium
Category
Rogue Agent
Content
asosuite tracked-keywords list --app my-next-app --platform iphone --region US --page 1 --sort relevance --order desc
```

### Create and list keyword tags

```bash
asosuite tags create --name important --color "#ef4444"
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The markdown lists state-changing and deletion operations such as `untrack-app`, `unplan-app`, `tracked-keywords remove`, `tags delete`, `related-apps remove`, and `events delete` without any warning that they modify or remove tracked data. For a markdown skill description, the criteria require warning users about behaviors that could affect user data or system integrity, and this file omits such disclosure.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
The natural-language defaults section sets `region=US` as the default behavior, which imposes a specific locale choice without indicating that the user can opt in or select another region first. The policy forbids forcing a locale unless it is justified or presented as a user choice.

Static analysis

No suspicious patterns detected.