Back to skill

Security audit

Expo App Store Deploy

Security checks for vulnerabilities and agentic risk

Overview

This skill is coherent for Expo app deployment, but it needs review because it presents high-impact store submission commands with weak guardrails and unpinned CLI execution.

Install only if you are comfortable with a deployment helper that documents real production build and app-store submission commands. Before using it, pin eas-cli through your project lockfile, avoid auto-submit unless a human has approved the release, and run submissions in a least-privileged environment with only the required credentials available.

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:15
Finding

Unpinned EAS CLI Execution Through npx

Content
View full analysis
npx eas-cli submit --platform android --id # Build + submit in one step npx eas-cli build --platform ios --profile production --auto-submit ``` ### Technical Analysis The documented commands invoke `eas-cli` through `npx` without specifying a reviewed, immutable package version. When the package is unavailable locally, `npx` can resolve and download it from the configured npm registry before executing it. Consequently, the code executed by these instructions may change after the Skill has been reviewed. This is an insecure dependency practice because the deployment workflow does not provide an exact version, committed lockfile, package-integrity verification, or trusted installation procedure. A compromised upstream release, registry account, registry configuration, or dependency in the resolved package graph could cause arbitrary package or CLI code to run with the invoking user's privileges. ### Attack Path 1. An attacker compromises a version of `eas-cli`, one of its transitive dependencies, or the package distribution channel. 2. A user or agent follows `SKILL.md` and invokes an unversioned `npx eas-cli` command. 3. If no suitable local package is installed, `npx` resolves and downloads the package version available through the configured registry. 4. The downloaded package and its dependency code execute with the permissions of the invoking user. 5. Malicious code can inspect accessible application sour ...[truncated 983 chars]
Remediation
View remediation
``` 2. Commit the generated lockfile and install dependencies in automation with a lockfile-enforcing command: ```bash npm ci ``` 3. Invoke the lockfile-controlled local package and prevent `npx` from downloading missing packages: ```bash npx --no-install eas-cli build --platform ios --profile production ``` 4. Where package-manager support permits, prefer a command that explicitly refuses remote package acquisition if the local dependency is absent. 5. Review version upgrades through a controlled change process, including dependency-diff inspection, provenance checks, vulnerability scanning, and verification of package integrity. 6. Run deployment tooling under a least-privileged account and expose only the credentials required for the selected platform and operation. Keep unrelated secrets out of the process environment. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (9)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description includes broad trigger phrases like app store deploy, EAS build, production build, and submit to store, which may cause this high-impact skill to be invoked in situations where the user only wants advice rather than actual deployment guidance. In this context, over-broad activation is dangerous because the skill contains commands capable of initiating release workflows and external publication actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill provides direct build and store-submission commands, including --auto-submit, without prominent warnings that these actions can produce irreversible external effects such as publishing binaries, changing store state, or consuming signing credentials. In a deployment-focused skill, that omission materially increases the risk of accidental release or unintended operational impact.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The skill repeatedly instructs use of npx eas-cli without pinning a specific package version. npx may fetch the latest published package at execution time, which creates a supply-chain risk: a compromised or breaking upstream release could be executed during build or submission workflows with access to project files, credentials, and store deployment context.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This command uses unpinned npx eas-cli, allowing whatever version is current in the registry to be downloaded and executed. In a deployment skill, that increases the chance of executing unexpected code in a privileged CI or operator environment tied to signing credentials and release artifacts.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Invoking npx eas-cli without version pinning introduces a runtime dependency on the latest registry state. Because this skill is for production mobile deployment, any malicious or incompatible upstream release could affect build outputs, credential handling, or release automation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The submit workflow references unpinned npx eas-cli, so the package actually executed may change over time without review. That is especially risky for store submission operations, where the tool may have access to tokens, metadata, and the authority to publish externally.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This Android submit command also dynamically resolves eas-cli via npx with no fixed version. The lack of reproducibility and the possibility of executing a compromised upstream package make this a real supply-chain concern in a release pipeline.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The build-and-submit shortcut combines high-impact external actions while using an unpinned npx eas-cli. If the resolved CLI version is malicious or unexpectedly changed, it could influence both artifact generation and automatic store submission in a single step.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

Even the prerequisite version-check command uses npx eas-cli without pinning, which still relies on the latest package resolution path. While lower risk than a full deploy command, it normalizes unsafe package execution patterns throughout the skill and can still run unreviewed code.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.