Back to skill

Security audit

dokidoki

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward terminal helper for controlling BLE devices, with a disclosed global npm install and background daemon but no hidden or unrelated behavior in the artifact.

Before installing, consider that this will globally install and run a third-party npm CLI with your user's permissions and BLE access. It appears purpose-aligned, but a pinned version or isolated install would reduce supply-chain risk.

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:4
Finding
Unpinned Third-Party npm Package Installed Globally<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 4 **Vulnerability Type**: Unpinned and globally installed third-party dependency **Risk Level**: Medium ### Vulnerable Code Snippet ```yaml metadata: {"clawdbot":{"emoji":"🎮","requires":{"bins":["doki"]},"install":[{"id":"npm","kind":"npm","package":"@tryjoy/dokidoki","global":true,"bins":["doki"],"label":"Install dokidoki (npm)"}],"label":"dokidoki"}} ``` ### Technical Analysis The skill installs `@tryjoy/dokidoki` from npm with `"global": true`, but does not specify an exact package version, integrity hash, lockfile, or other verification mechanism. Consequently, npm may resolve a mutable package release that was not the version reviewed when the skill was authored. npm packages can contain lifecycle scripts and executable code that run during installation or subsequent CLI invocation. A global installation also places the package and its executable into the user's global Node.js environment rather than isolating it within the project. The source and behavior of the dependency are not included in the audited artifact, so they cannot be verified from this project. There is no evidence in the reviewed file that `@tryjoy/dokidoki` is currently malicious. The vulnerability is the unsafe dependency acquisition and installation model, which creates a supply-chain attack opportunity if the package, publisher account, or distribution channel is compromised. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, or another component of the dependency supply chain. 2. The attacker publishes a malicious or backdoored version of `@tryjoy/dokidoki`. 3. A user installs the skill when that version is the package version resolved by npm because no exact version is pinned. 4. npm downloads and globally installs the attacker-controlled package. 5. Malicious lifecycle code may execute during installation, or malicious runtime code may execute when the user in ...[truncated 769 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin `@tryjoy/dokidoki` to an exact, reviewed version rather than allowing npm to resolve an unspecified release. 2. Record and verify the package integrity hash using a trusted lockfile or an equivalent integrity-verification mechanism. 3. Review the package source, transitive dependencies, and npm lifecycle scripts for the exact pinned release. 4. Avoid global installation where possible. Install the dependency in a project-local or otherwise isolated environment with restricted permissions. 5. Disable npm lifecycle scripts during installation when they are not required, for example by using an appropriate `ignore-scripts` policy. 6. Run the CLI under a dedicated, least-privileged account or sandbox with only the Bluetooth, filesystem, and network permissions required for its documented operation. 7. Establish a controlled dependency-update process in which new versions are reviewed and tested before the pin and integrity metadata are changed. ]]>
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

Static analysis

No suspicious patterns detected.