Back to skill

Security audit

Age Verification

Security checks for vulnerabilities and agentic risk

Overview

The skill describes a legitimate age-verification purpose, but it asks users to install unreviewed npm code for highly sensitive ID and face processing without enough scoping or provenance.

Do not install this blindly for real users or real identity documents. Before installing, require an exact reviewed package version, source repository or provenance proof, dependency integrity data, privacy and retention details, and clear handling for API keys and third-party verification. Evaluate the npm package in an isolated environment before providing production credentials, IDs, passports, face images, or parental-consent 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:16
Finding
Unpinned and Unverified Third-Party npm Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 16–18 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Vulnerable Code**: ```markdown **Installation**: ```bash npm install @clawhub/age-guard ``` ``` ### Technical Analysis The installation command retrieves `@clawhub/age-guard` from the configured npm registry without specifying an exact version. The audited project provides no lockfile, integrity hash, vendored implementation, source repository reference, or publisher verification that would allow users to confirm which code will be installed. Consequently, the dependency resolved at installation time can differ from the package version that existed when this Skill was reviewed. npm packages may also define lifecycle scripts that execute during installation. If the package, publisher account, registry namespace, or a future release is compromised, following the documented command could execute unreviewed code with the privileges of the user running npm. The project itself contains only `SKILL.md`; the dependency implementation was not present and therefore could not be audited. No evidence establishes that the current package is malicious, but the unpinned and unverifiable installation process creates a supply-chain exposure. ### Attack Path 1. An attacker gains control of the package, its publisher account, or an applicable registry resolution path, or publishes a compromised future release. 2. The attacker introduces malicious package code or an npm lifecycle script. 3. A user follows the installation command in `SKILL.md`. 4. npm resolves and downloads the attacker-controlled release because no exact version or integrity constraint is specified. 5. Malicious lifecycle code may execute during installation, or malicious library code may execute when the package is subsequently imported and used. ### Impact Assessment Malicious installation scripts or runtime package ...[truncated 677 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to a reviewed, exact version rather than allowing npm to resolve the latest release. 2. Include and maintain a lockfile containing registry resolution and integrity metadata. 3. Provide a verifiable link to the package's official source repository and document the expected publisher and package provenance. 4. Review the package source, transitive dependencies, and npm lifecycle scripts before recommending installation. 5. Use npm provenance and signature verification where supported, and enforce approved registries through project or organization configuration. 6. Consider installing with lifecycle scripts disabled during initial inspection, such as with `--ignore-scripts`, where compatible with the package's legitimate requirements. 7. Run the dependency with least privilege and isolate any processing of identity or biometric information. 8. Establish a dependency update process that requires security review before changing the pinned version or lockfile.
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.