Back to skill

Security audit

Skill

Security checks for vulnerabilities and agentic risk

Overview

This skill is purpose-built for Android phone control, but it asks users to install mutable external software and can forward sensitive SMS and notification contents with limited warning.

Review before installing. Prefer a spare Android device with minimal personal data, pin and verify the npm package and APK if possible, grant only permissions you need, and enable callbacks only to HTTPS endpoints you control because SMS and notification contents may be forwarded.

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

T08 · Insecure Dependencies

Warning
Location
SKILL.md:25
Finding
Unpinned Global npm Package Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 25 **Vulnerability Type**: Supply-chain exposure through an unpinned globally installed dependency **Risk Level**: Medium ### Vulnerable Code ```bash npm install -g aster-mcp aster start ``` ### Technical Analysis The setup instructions install the latest version of `aster-mcp` from the npm registry without specifying an exact version or verifying package integrity. Consequently, the code installed by users can differ from the version reviewed when this skill was published. A global npm installation can execute lifecycle scripts such as `preinstall`, `install`, and `postinstall`. These scripts run with the privileges of the user invoking npm. The subsequently executed `aster start` command then runs the downloaded package. If the npm package, publisher account, release pipeline, or dependency graph is compromised, attacker-controlled code could execute on the host. Although the skill metadata declares version `0.1.13`, the installation command does not pin npm to that version. ### Attack Path 1. An attacker compromises the `aster-mcp` npm publisher account, release pipeline, or a package dependency. 2. The attacker publishes a malicious package version or causes a malicious dependency to be selected. 3. A user follows the documented command `npm install -g aster-mcp`. 4. npm retrieves the current registry version rather than the audited version. 5. Malicious lifecycle code executes during installation, or malicious application code executes when the user runs `aster start`. 6. The payload operates with the installing user's privileges and can potentially access that user's files, credentials, environment variables, and network resources. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the account performing installation. If the command is run with elevated privileges, the impact may extend to system-wide file modification and persistence. A ...[truncated 336 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Pin installation to the reviewed version, for example: ```bash npm install -g aster-mcp@0.1.13 ``` - Publish and document the expected npm integrity digest or signed provenance for the exact release. - Enable npm package provenance and protect publisher accounts with phishing-resistant multi-factor authentication. - Recommend checking package metadata and integrity before installation. - Audit and lock transitive dependencies used by the published package. - Avoid elevated installation where possible. Prefer a dedicated, least-privileged service account or an isolated container. - Document a trusted upgrade process in which each new package version is reviewed before the pinned version is changed. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:28
Finding
Android Application Installation Without Documented Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 28-30 **Vulnerability Type**: Unverified externally distributed application dependency **Risk Level**: Medium ### Vulnerable Code ```markdown 2. **Install the Aster Android app** on any Android device — your daily phone or a spare one for your AI — from [Releases](https://github.com/satyajiit/aster-mcp/releases) and connect to the server address shown in terminal. ``` ### Technical Analysis The setup documentation directs users to retrieve and install an Android application from a mutable GitHub Releases page, but it does not identify an exact release, expected package filename, cryptographic checksum, or trusted signing-certificate fingerprint. Android package-signature verification provides some protection during installation and upgrades, but users still need a trusted reference for the expected signer and artifact. Without a documented version and signer fingerprint, users cannot independently establish that the initially installed APK is the reviewed release. A compromised repository, maintainer account, release pipeline, or misleading release asset could therefore distribute an altered application. This concern is significant because the application requests or uses sensitive device capabilities described elsewhere in the document, including Accessibility Service automation, notifications, SMS, calls, location, clipboard access, file operations, screenshots, and shell execution within the application sandbox. ### Attack Path 1. An attacker compromises the GitHub maintainer account, repository release process, or build pipeline. 2. The attacker publishes or replaces a release asset with a malicious APK, potentially using a different signing certificate. 3. A user follows the generic Releases link and selects the attacker-controlled artifact because no exact version, checksum, or certificate fingerprint is specified. 4. The user installs the application and grants the permissions ...[truncated 957 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Link to a specific reviewed release tag and exact APK asset rather than the mutable Releases index. - Publish a SHA-256 checksum for every APK through an independently protected or signed release manifest. - Document the expected Android application ID and signing-certificate SHA-256 fingerprint. - Instruct users to reject installation if the checksum, package identity, or signing certificate does not match. - Use a reproducible build process and publish build provenance or signed attestations. - Protect repository and release workflows with mandatory review, restricted release permissions, branch protection, and phishing-resistant multi-factor authentication. - Recommend initial installation on a dedicated device with minimal data and permissions, followed by gradual permission grants only when each capability is needed. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

High
Confidence
98% confidence
Finding
The webhook forwarding feature explicitly sends notification and SMS content in HTTP POST payloads to a configured external endpoint, but the documentation does not clearly warn that highly sensitive message content, phone numbers, device identifiers, and metadata may leave the local device/server boundary. Because the feature is framed as convenient event delivery and even includes delivery-channel fields, users may unintentionally exfiltrate private communications to third-party services or insecure endpoints.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill advertises high-risk capabilities including calling, SMS, file access, UI automation, clipboard access, location, notifications, and shell execution, but the top-level description does not prominently warn users about the safety and privacy consequences of granting such broad control over a personal mobile device. This can lead users to enable the skill without understanding that it can access sensitive communications, manipulate apps, and perform actions on their behalf.

Static analysis

No suspicious patterns detected.