Back to skill

Security audit

DAEMON Club

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed CLI-based identity and membership tool, but users should understand it creates a persistent local key and publishes public membership data when joining.

Install only if you are comfortable with a globally installed npm CLI creating a persistent local Ed25519 identity and publishing public membership claims, public keys, signatures, and related identity metadata to the DAEMON Club API and registry. Prefer reviewing or pinning the npm package version before installation if supply-chain control matters.

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:16
Finding
Unpinned Global Installation of an Externally Maintained npm Package## Vulnerability Details **File Location**: `SKILL.md`, lines 16–33 **Vulnerability Type**: Unpinned third-party executable dependency installed globally **Risk Level**: Medium ### Vulnerable Code ```yaml install: - kind: node package: daemon-club bins: - daemon ``` ```bash npm install -g daemon-club ``` ### Technical Analysis The skill directs users to install the latest available release of the externally maintained `daemon-club` npm package globally. It does not specify an exact package version, lockfile, or expected integrity hash. The package's implementation is not included in the audited project, which contains only `SKILL.md`; therefore, claims concerning dependency count, private-key protection, file permissions, and network behavior cannot be independently verified from the project. Because the dependency is unpinned, the code installed by this instruction can change after the skill has been reviewed. Global npm installation also makes the package's executable available in the user's environment. Package lifecycle scripts and the installed CLI may execute with the permissions of the invoking user. This finding identifies a supply-chain exposure rather than proof that the current published package is malicious. ### Attack Path 1. An attacker compromises the npm publisher account, publishing workflow, or another component of the package distribution process. 2. The attacker publishes a malicious release under the existing `daemon-club` package name. 3. A user follows the skill documentation and runs `npm install -g daemon-club` without an exact version or integrity constraint. 4. npm retrieves and installs the attacker-controlled release. Malicious lifecycle code may run during installation, or malicious behavior may execute when the user invokes the `daemon` command. 5. The compromised program executes with the invoking user's privileges and may access files available to that accou ...[truncated 1069 chars]
Remediation
## Remediation Suggestions 1. Pin the package to a specific, reviewed version in both skill metadata and installation examples, such as `daemon-club@X.Y.Z`. 2. Record and verify the expected npm package integrity digest before installation. 3. Include reviewable source code in the project or link the package to an immutable source commit and reproducible build. 4. Prefer a project-local installation over a global installation where operationally feasible. 5. Disable npm lifecycle scripts during installation when the package does not require them, and document any scripts that must run. 6. Publish a lockfile or equivalent dependency manifest, even if the package currently claims to have no runtime dependencies. 7. Add automated tests confirming that private keys never leave the local system and that `~/.daemon/identity.json` is created with restrictive permissions. 8. Document all network destinations, transmitted fields, and privacy implications for membership and governance commands. 9. Establish package signing, protected publishing credentials, multi-factor authentication, provenance attestations, and a documented release-review process.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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 (1)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill encourages users to run `daemon join` and describes a remote API and public GitHub registry, but it does not clearly warn at the point of use that joining publishes identity-related data and signed claims to external services. This can mislead users into disclosing persistent identifiers and metadata without informed consent, which is especially risky for agent environments that may auto-install or auto-run skills.

Static analysis

No suspicious patterns detected.