Back to skill

Security audit

Capawesome Cloud

Security checks for vulnerabilities and agentic risk

Overview

This appears to be legitimate Capawesome Cloud guidance, but it uses mutable command-line installs and handles powerful release credentials in ways users should review carefully.

Install only after reviewing the commands. Prefer pinned, lockfile-managed CLI versions; avoid putting real tokens or passwords directly on the command line; use CI secret stores or interactive prompts where available; keep signing keys outside the repository with restrictive permissions; and limit Capawesome, Apple, Google, and registry credentials to the minimum permissions needed.

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

T08 · Insecure Dependencies

Error
Location
references/cli-commands.md:3
Finding

Unpinned Third-Party CLI Packages Are Installed and Executed

Content
View full analysis
[options]` ``` Related examples also install mutable package versions: ```bash npm install -g pnpm && pnpm install npm install -g yarn && yarn install npm install @capawesome/capacitor-live-update@latest ``` ### Technical Analysis The Skill repeatedly directs users and CI systems to execute `npx @capawesome/cli` without specifying a reviewed version. If the package is not already installed locally, `npx` can retrieve and execute the current package published under that registry name. The global installation instruction explicitly selects `@latest`, while the pnpm and Yarn installation examples also omit versions. These commands therefore make the code executed by the Skill mutable after the Skill itself has been audited. A compromised package maintainer account, malicious future release, registry compromise, or dependency-confusion event could cause arbitrary lifecycle or CLI code to execute in developer and CI environments. The exposure is especially significant because the documented CLI is used in environments containing repository source, Capawesome authentication tokens, app-store credentials, signing certificates, and deployment permissions. ### Attack Path 1. An attacker compromises the npm account, publication pipeline, or dependency tree of one of the referenced packages. 2. The attacker publishes a malicious version under the expected package name or mutable `latest` tag. 3. A user or CI job follows the Skill and runs an unversioned `npx` command or installs the package with `@latest`. 4. npm downloads and executes the attacker-cont ...[truncated 797 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
references/app-store-publishing.md:51
Finding

Sensitive Credentials Are Passed Through Command-Line Arguments

Content
View full analysis
\ --name "" \ --platform ios \ --apple-team-id \ --apple-id \ --apple-app-id \ --apple-app-password ``` The instructions then state: ```text Replace all `` values with the credentials obtained above. ``` Other affected patterns include: ```bash npx @capawesome/cli login --token ``` ```bash npx @capawesome/cli apps:certificates:create \ --file /path/to/my-release-key.jks \ --password \ --key-alias my-key-alias \ --key-password ``` ```bash npx @capawesome/cli apps:environments:set \ --app-id \ --environment-id \ --secret "API_KEY=sk-abc123" \ --secret "NPM_TOKEN=npm_xyz" ``` ### Technical Analysis The documentation instructs users to substitute real tokens, passwords, and secret values directly into command-line arguments. Encryption performed by the destination service does not protect a secret before the CLI receives it. Command arguments may be exposed through: - Interactive shell history - Process-list inspection by other local users or privileged processes - CI command echoing and shell tracing - Terminal recordings and support transcripts - Process crash reports or diagnostic collection - Build logs and workflow metadata Quoting an argument only affects shell parsing; it does not prevent the resulting value from appearing in process arguments or command history. ### At ...[truncated 1406 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
references/certificates-ios.md:84
Finding

Signing Private Keys Are Generated in the Working Directory Without Mandatory Access Controls

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (197)

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 · references/build-guides.md (reported line 83)May include surrounding context.

  1. Add an environment secret (e.g., NPM_REGISTRY_TOKEN) with the auth token from the npm registry provider.

  2. Create .npmrc in the project root:

text
@your-scope:registry=https://your-registry.example.com

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 · references/build-guides.md (reported line 94)May include surrounding context.

  1. Add an environment secret (e.g., NPM_REGISTRY_TOKEN) with the auth token from the npm registry provider.

  2. Create .npmrc in the project root:

text
@your-scope:registry=https://your-registry.example.com

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 · references/build-guides.md (reported line 96)May include surrounding context.

  1. Add an environment secret (e.g., NPM_REGISTRY_TOKEN) with the auth token from the npm registry provider.

  2. Create .npmrc in the project root:

text
@your-scope:registry=https://your-registry.example.com

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 · references/build-guides.md (reported line 97)May include surrounding context.

md
If local development breaks with the new `.npmrc`:

1. Create `.npmrc.capawesome` with the registry config.
2. Add environment variable `NPM_CONFIG_USERCONFIG` with value `/tmp/capawesome/repo/.npmrc.capawesome`.

## Override Java Version

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 · references/certificates-ios.md (reported line 192)May include surrounding context.

md
## Create a .p12 Certificate (Manual)

### Export from Keychain Access

If a signing certificate is already installed on the user's Mac, print the following steps for the user and ask them to confirm when done:

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 · references/certificates-ios.md (reported line 196)May include surrounding context.

md
## Create a .p12 Certificate (Manual)

### Export from Keychain Access

If a signing certificate is already installed on the user's Mac, print the following steps for the user and ask them to confirm when done:

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 · references/certificates-ios.md (reported line 218)May include surrounding context.

md
## Create a .p12 Certificate (Manual)

### Export from Keychain Access

If a signing certificate is already installed on the user's Mac, print the following steps for the user and ask them to confirm when done:

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 · references/certificates-ios.md (reported line 219)May include surrounding context.

md
## Create a .p12 Certificate (Manual)

### Export from Keychain Access

If a signing certificate is already installed on the user's Mac, print the following steps for the user and ask them to confirm when done:

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 · references/certificates-ios.md (reported line 222)May include surrounding context.

md
## Create a .p12 Certificate (Manual)

### Export from Keychain Access

If a signing certificate is already installed on the user's Mac, print the following steps for the user and ask them to confirm when done:

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 · references/certificates-ios.md (reported line 223)May include surrounding context.

md
## Create a .p12 Certificate (Manual)

### Export from Keychain Access

If a signing certificate is already installed on the user's Mac, print the following steps for the user and ask them to confirm when done:

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · references/environments.md (reported line 60)May include surrounding context.

npx @capawesome/cli apps:environments:set
--app-id <APP_ID>
--environment-id <ENV_ID>
--variable-file .env

text

### Set Secrets via CLI

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The skill instructs users to run npx @capawesome/cli without pinning an exact version, which can cause whatever version is currently published to the registry to be fetched and executed. If the package is compromised, typosquatted, or a breaking/malicious update is released, users could execute unreviewed code in a sensitive environment that may contain mobile signing credentials and deployment tokens.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill shows token-based authentication directly in a shell command but provides no warning about secret handling, such as shell history exposure, CI log leakage, or storing tokens in plaintext scripts. In a deployment-oriented skill, this omission is meaningful because the token likely grants access to build, update, and publishing operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

This command uses unpinned npx @capawesome/cli together with token-based authentication, increasing risk because it may download and execute the latest published package before handling a sensitive credential. A compromised or malicious package version could exfiltrate the token or misuse it to access Capawesome Cloud resources.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The app creation step again relies on an unpinned npx package execution. While the action itself is lower sensitivity than authentication, it still grants downloaded code execution in the developer or CI environment and may interact with cloud resources.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

Recommending npx @capawesome/cli login during troubleshooting still causes unpinned remote package execution. Because this appears in an error-handling path, users may run it quickly without review, which increases the chance of unsafe execution if the package supply chain is compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
78% confidence
Finding

The skill references npx cap sync without pinning the package source/version that provides cap. Although commonly run from local project dependencies, npx may resolve and execute an unexpected version if the dependency is absent or environment resolution differs, creating a supply-chain execution risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

This upload-auth troubleshooting step again invokes unpinned npx @capawesome/cli, which is risky because the command may execute newly published code before handling authenticated operations. In the context of live updates, compromise could affect OTA deployment channels and application integrity.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The app store publishing troubleshooting section repeats the unpinned npx @capawesome/cli login pattern. Because this workflow often involves access to distribution credentials and release pipelines, executing an unpinned package materially increases supply-chain risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The cancel-deployment command uses unpinned npx @capawesome/cli in a context that includes app and deployment identifiers and likely authenticated access. While not obviously malicious, it still enables unreviewed code execution from the package registry during operational release management.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The Apple credential instructions direct users to supply secrets such as Apple ID, app-specific password, and identifiers directly as command-line arguments, but they omit any warning that shell history, process listings, CI logs, or copied terminal transcripts may expose those secrets. In a publishing context, exposed credentials can allow unauthorized app submissions, account misuse, or lateral compromise of related Apple resources.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The document repeatedly instructs users to run npx @capawesome/cli without pinning an exact package version. npx may fetch the latest published package at execution time, creating a supply-chain risk where a compromised, malicious, or breaking release could run immediately in a sensitive workflow that handles signing keys and store-publishing credentials.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This command invokes npx @capawesome/cli without a pinned version while passing Apple account credentials on the command line. If npx resolves to an unexpected or compromised release, that code executes with access to highly sensitive publishing secrets and app-store submission permissions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The guide tells users to use a Google service account JSON key file for Play Store publishing without warning about secure storage, file permissions, rotation, or avoiding repository/CI log exposure. That key can grant powerful access to release workflows, so poor handling materially increases the chance of credential theft and unauthorized publishing actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The Google Play destination-creation command relies on an unpinned npx package. Because this workflow uses a Google service account key, any fetched package version executes in a high-trust context and could exfiltrate credentials or alter release settings.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.