Back to skill

Security audit

OpenHarmony React Native Performance

Security checks for vulnerabilities and agentic risk

Overview

This is a static guidance skill for OpenHarmony React Native performance checks, with no hidden code or credential access found.

Before installing, prefer manually copying the reviewed skill files or pinning installer versions and repository commits instead of running unpinned npx commands from a mutable source. Once installed, the skill should only influence code review and optimization advice for OpenHarmony React Native projects.

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
README.md:17
Finding
Unpinned Third-Party Installer Executed Through npx<![CDATA[ ## Vulnerability Details **File Location**: `README.md`, lines 17–22 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ```bash # From homecheck repo (GitCode) npx skills add https://gitcode.com/openharmony-sig/homecheck --skill ohos-react-native-performance # Or if shorthand is supported for your git host # npx skills add openharmony-sig/homecheck --skill ohos-react-native-performance ``` ### Technical Analysis The documented command invokes the `skills` npm package through `npx` without specifying an audited version or integrity constraint. If the package is not already available locally, `npx` can retrieve its current version from the configured npm registry and execute it with the privileges of the installing user. Consequently, the executable installer may differ from the version originally reviewed. Compromise of the registry account, package ownership transfer, malicious future publication, or resolution through an untrusted registry could turn this installation command into an arbitrary code-execution channel. The external Git repository is also referenced without an immutable commit identifier, allowing its retrieved contents to change over time. The project itself contains no embedded executable scripts or observed malicious payload. This finding concerns the unsafe, mutable dependency-installation workflow documented by the project. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, or the registry used to resolve the unpinned `skills` package. 2. The attacker publishes a malicious version containing lifecycle or installer code. 3. A user follows the documented `npx skills add ...` command. 4. `npx` resolves and downloads the attacker-controlled package version. 5. The package executes under the user's account during installation. 6. The malicious installer can access or modify resources available to that user before installing the expected skill to conceal the co ...[truncated 721 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the installer to a specifically reviewed version, for example: ```bash npx --yes skills@<audited-version> add <immutable-source> --skill ohos-react-native-performance ``` 2. Replace `<immutable-source>` with a repository reference pinned to an audited commit rather than a mutable default branch or shorthand. 3. Publish and verify expected package provenance, maintainer identity, checksums, and signatures where supported. 4. Use a lockfile and npm integrity metadata in automated environments instead of resolving the latest package dynamically. 5. Configure CI and developer systems to use a trusted registry and disable unexpected registry overrides. 6. Prefer manual installation of reviewed files when package execution is unnecessary. 7. Run installation in a least-privileged, isolated environment without production credentials or unrelated sensitive files. 8. Apply the same controls to the separately documented `npx ai-agent-skills install` alternative. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (7)

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README instructs users to run `npx skills` directly from the network without pinning a specific package version. If the package or one of its resolution paths is compromised or updated maliciously, users may execute unintended code during installation or use.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This command tells users to execute `npx skills add` against a remote repository without pinning the tool version. Unpinned `npx` execution increases supply-chain risk because the package resolved at runtime can change and may execute attacker-controlled code if the upstream package is compromised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The shorthand installation example again relies on `npx skills` without an explicit version pin. That makes installs non-reproducible and exposes consumers to package substitution or malicious updates in the toolchain.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The generic skills.sh installation instruction recommends `npx skills add` without pinning the package version. Because `npx` fetches and executes packages dynamically, this creates a supply-chain execution risk if the package changes or is compromised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
This line recommends using `npx skills add` for Claude Code users without any version pinning. The danger is contextualized by this being an agent-skill installation path: users are being guided to fetch and run tooling and skill content, so a compromised package could directly affect developer environments.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The README advises `npx ai-agent-skills install` without a pinned version, which carries the same dynamic package execution risk as other unpinned `npx` commands. A compromised or unexpectedly updated package could execute arbitrary code on the user's workstation during installation.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
Line L16 states that the skill is "English-only to reduce token usage," which imposes a language restriction as part of the skill behavior. This is a natural-language policy concern because it forces a specific language without offering the user a choice or opt-in.

Static analysis

No suspicious patterns detected.