expo-cicd-workflows

SAFE max severity MEDIUMSkillSpector Caution 43 registry skills.sh last scanned 1 scan

Verdict safe, but 2 findings (2 medium), mainly data exfiltration, prompt injection. Most recent scan 2026-02-06.

This Expo CI/CD workflow skill has MEDIUM overall security risk. The primary concerns are: (1) Transitive trust in external documentation and schema resources from api.expo.dev and GitHub without integrity verification, creating indirect prompt injection risks if those sources are compromised, (2) Missing script files that are referenced in instructions, preventing verification of their security controls, (3) Potential for resource exhaustion in validation operations. The skill's core functionality (generating CI/CD workflows) is legitimate, but the reliance on external, unverified content for critical schema and documentation creates a supply chain risk. The skill would benefit from integrity verification of external resources, inclusion of missing scripts for review, and more defensive validation patterns.

Scanner's overall assessment (LLM analyzer)

Second scanner: NVIDIA SkillSpector

Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.

What this skill does

Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.

Package
4 files, 8.6 KB
SKILL.md
422 words, 10 sections
Code
JavaScript (2)
Allowed tools
Read Write Bash(node:*)
License
MIT License
Version
1.0.0

SKILL.md covers: EAS Workflows Skill · Reference Documentation · Fetch resources · Workflow File Location · Top-Level Structure · Expressions · Generating Workflows · Validation · Install dependencies if missing · Answering Questions

Findings

MEDIUM Hardcoded External API Endpoint Without Validation Data Exfiltrationllm

The skill fetches external resources from api.expo.dev and raw.githubusercontent.com without any validation or integrity checks. While these are legitimate Expo domains, the skill trusts the content implicitly and uses it to generate workflow files that will execute in CI/CD pipelines. An attacker compromising these endpoints or performing a man-in-the-middle attack could inject malicious schema definitions or documentation that leads to unsafe workflow generation.

SKILL.md

```bash
node {baseDir}/scripts/fetch.js <url>
```

Fetches from:
1. https://api.expo.dev/v2/workflows/schema
2. https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx
3. https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx
Remediation: Implement integrity verification: (1) Pin expected schema versions or use content hashes to verify fetched resources, (2) Validate JSON schema structure before using it for validation, (3) Use HTTPS certificate pinning or verify TLS certificates, (4) Add checksum verification for cached responses, (5) Consider bundling known-good versions of schemas as fallbacks.
MEDIUM Transitive Trust in External Documentation Content Prompt Injectionllm

The skill instructs the agent to fetch and follow external documentation from GitHub (syntax.mdx, pre-packaged-jobs.mdx) without any content validation. The instruction explicitly states 'Do not rely on memorized values; these resources evolve as new features are added.' This creates a transitive trust relationship where the agent will follow whatever instructions or examples are present in the external markdown files. If these files were compromised or contained malicious examples, the agent would incorporate them into generated workflows.

SKILL.md

```markdown
2. **Syntax Documentation** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx
   - Overview of workflow YAML syntax
   - Examples and English explanations

3. **Pre-packaged Jobs** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx

Do not rely on memorized values; these resources evolve as new features are added.
```
Remediation: (1) Implement content validation for fetched markdown files, (2) Parse and sanitize examples before using them, (3) Validate that fetched content matches expected structure/format, (4) Add warnings when external content changes significantly, (5) Consider using versioned/tagged documentation URLs instead of 'main' branch, (6) Implement a review step before incorporating external examples into generated code.

What is in the package

FileKindSize
SKILL.mddoc3.4 KB
scripts/fetch.jsscript2.9 KB
scripts/package.jsonconfig204 B
scripts/validate.jsscript2.1 KB

External hosts referenced

api.expo.dev raw.githubusercontent.com

Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.

Package contents recorded 2026-10-22 at commit b631a6045b42. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.

What we checked

What we did not check

Sources