Back to skill

Security audit

CementOps Safety Training

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent MSHA Part 46 safety-training reference skill with no executable payloads, persistence, credential use, or hidden agent-control behavior found.

Install only from the intended ClawHub source, avoid running the installer with elevated privileges, and pin or verify the installer version in controlled environments. Treat the generated training guidance as regulatory support, not legal advice, and customize it to the plant's actual equipment and hazards.

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:42
Finding

Unpinned npm Package Execution in Installation Instructions

Content
View full analysis

Vulnerability Details

File Location: README.md, lines 42-46
Vulnerability Type: Supply-chain risk caused by executing a mutable third-party package version
Risk Level: Medium

Vulnerable Code

markdown
Install from ClawHub:

```bash
npx clawhub@latest install cementops-safety-training
text

### Technical Analysis

The installation instructions invoke `npx` with the mutable version selector `clawhub@latest`. When a user follows these instructions, npm may download and immediately execute whichever package release is currently associated with the `latest` distribution tag.

The effective installer code is therefore not fixed to the version reviewed during this audit. If the package publisher account, npm package, release process, or one of its executable dependencies is compromised, a malicious release could be served without requiring any modification to this repository.

This is classified as `T08: Insecure Dependencies` because the risk originates from an unpinned third-party supply-chain component. The project itself contains no confirmed malicious scripts, and exploitation requires a user to execute the documented command.

### Attack Path

1. An attacker compromises the npm publisher account, release pipeline, package contents, or a relevant dependency for `clawhub`.
2. The attacker publishes a malicious package version and assigns or causes it to receive the `latest` distribution tag.
3. A user follows the Quick Start instructions and runs `npx clawhub@latest install cementops-safety-training`.
4. npm resolves the mutable `latest` tag and downloads the attacker-controlled release.
5. `npx` executes the package CLI and any applicable lifecycle behavior with the privileges of the invoking user.
6. The malicious package can access or modify resources available to that user.

### Impact Assessment

Successful exploitation could provide arbitrary code execution under the account that runs t
...[truncated 610 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace @latest with an exact, reviewed package version:
    bash
    npx clawhub@1.2.3 install cementops-safety-training
    
  2. Verify and document the expected npm package publisher, registry, and package provenance.
  3. Use npm provenance attestations, signed releases, or an equivalent trusted-release verification mechanism where supported.
  4. Publish and verify a checksum or integrity value for the reviewed installer artifact.
  5. In automated environments, use a lockfile or another reproducible dependency mechanism rather than resolving mutable distribution tags.
  6. Review package lifecycle scripts and the resolved dependency tree before approving future installer versions.
  7. Advise users not to run the installer with administrative privileges unless explicitly required and justified.
  8. Establish a controlled version-update process in which new releases are audited before the documented version is changed.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (4)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
1. Reference the toolbox talk library (training-content/safety-talks.json) for ready-to-deliver 5-minute talks

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
1. Reference the toolbox talk library (training-content/safety-talks.json) for ready-to-deliver 5-minute talks

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The README instructs users to run npx clawhub@latest install cementops-safety-training, which pulls and executes the latest published package version at install time rather than a pinned, reviewed release. If the upstream package is compromised, typosquatted, or a malicious update is published, users could execute untrusted code on their systems during installation.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This is a JSON manifest-like file, so SQP-1 applies. The metadata describes the skill and its domain but does not specify when the skill should activate, what exact user requests it should respond to, or any exclusions/negative examples, which can make invocation scope ambiguous in agent systems.

Content

No source excerpt is available for this finding.