Back to skill

Security audit

Ionic App Development

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward Ionic development reference skill with ordinary developer-tool risks around npm/npx commands and external live reload.

Install only if you are comfortable with an Ionic documentation skill that may suggest running npm and npx developer commands. Prefer pinned project-local tooling, avoid sudo/admin installs, and use `--external` only temporarily on trusted networks without production secrets or real user 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:70
Finding

Unpinned npm Package Installation and Runtime CLI Resolution

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (10)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components-scroll.md (reported line 40)May include surrounding context.

html
<ion-content>
  <!-- List items here -->

  <ion-infinite-scroll threshold="100px" (ionInfinite)="loadMore($event)">
    <ion-infinite-scroll-content

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 54)May include surrounding context.

md
When the user needs help with a specific component, read the corresponding reference file.

| Category         | Reference File                            | Components Covered                                                                                              |
| ---------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Action & Buttons | `references/components-action.md`         | action-sheet, button, fab, fab-button, fab-list, ripple-effect                                                  |
| Data Display     | `references/components-data-display.md`   | accordion, accordion-group, badge, card, card-content, card-header, card-subtitle, card-title, chip, item, item-divider, item-group, item-sliding, item-options, item-option, label, list, list-header, note, text |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 60)May include surrounding context.

md
| Data Display     | `references/components-data-display.md`   | accordion, accordion-group, badge, card, card-content, card-header, card-subtitle, card-title, chip, item, item-divider, item-group, item-sliding, item-options, item-option, label, list, list-header, note, text |
| Form             | `references/components-form.md`           | checkbox, datetime, datetime-button, input, input-otp, input-password-toggle, picker, radio, radio-group, range, searchbar, select, select-option, segment, segment-button, segment-content, segment-view, textarea, toggle |
| Layout           | `references/components-layout.md`         | app, content, grid, col, row, header, footer, toolbar, title, buttons, back-button, split-pane                  |
| Media            | `references/components-media.md`          | avatar, icon, img, thumbnail                                                                                    |
| Navigation       | `references/components-navigation.md`     | breadcrumb, breadcrumbs, menu, menu-button, menu-toggle, nav, nav-link, router, router-link, router-outlet, route, route-redirect, tabs, tab, tab-bar, tab-button |
| Overlay          | `references/components-overlay.md`        | alert, loading, modal, popover, toast, backdrop                                                                 |
| Scroll & Virtual | `references/components-scroll.md`         | infinite-scroll, infinite-scroll-content, refresher, refresher-content, reorder, reorder-group                  |

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation recommends ionic serve --external, which binds the dev server to all network interfaces, but it does not warn that this exposes the app and development server to other devices on the local network. In shared, public, or untrusted networks, this can allow unintended access to in-progress application content, debugging surfaces, or test data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The live-reload device testing commands use --external, which exposes the development server over the network, but the instructions omit any caution about network visibility. Because live-reload sessions often run debug-friendly builds, exposing them on untrusted networks can increase the chance of accidental disclosure or opportunistic access.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.