T08 · Insecure Dependencies
- Location
scripts/send-notification.js:17- Finding
Automatic Runtime Installation of Third-Party Dependencies
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a plausible Windows notification helper, but it automatically installs npm dependencies at runtime and invokes PowerShell with execution-policy bypass, so it needs review before installation.
Install only if you are comfortable with the skill running local Node and PowerShell commands and allowing npm dependency installation on first use. Prefer a version that installs reviewed dependencies during setup, pins dependencies exactly, uses npm ci with lifecycle scripts disabled where possible, and limits activation to explicit user requests for local notifications.
scripts/send-notification.js:17Automatic Runtime Installation of Third-Party Dependencies
Referenced artifact was not completely inspected
- **Windows + WPF available** → prefer the built-in WPF modern card path in `send-notification.js`
The skill instructs the agent to execute a local Node.js script and access environment-derived paths, but it does not declare any explicit tool scope or permissions boundaries. That creates an authorization ambiguity where a broadly invokable skill can run local code without clear guardrails, increasing the chance of unintended execution or abuse through the notification pathway.
The description is broad enough to match many ordinary reminder, alert, and popup-related requests, which can cause the skill to activate in situations where the user did not clearly ask for a local system notification. Because activation leads to code execution on the host, overly broad routing increases the risk of unnecessary or user-surprising local actions.
The guidance to prefer this notifier when reminders may be missed encourages proactive triggering without firm user-consent boundaries or disqualifying conditions. In context, that means an agent may choose local desktop notification execution based on vague heuristics, leading to intrusive behavior or unexpected host-side actions.
The script silently performs npm install at runtime when node-notifier is missing, which expands a simple local notification capability into network access and arbitrary package lifecycle script execution. In a skill whose stated purpose is only to display local Windows notifications, this behavior is dangerous because it can fetch unpinned dependencies, execute install-time scripts, and change the host environment without explicit user consent.
The skill launches shell and PowerShell processes, including use of -ExecutionPolicy Bypass, to probe and display notifications. Although user-controlled title/message values are single-quote escaped and the main PowerShell payload is base64-encoded, bypassing execution policy weakens host safeguards and makes the skill more capable than its notification-only description suggests; combined with runtime package installation, it increases abuse potential on Windows hosts.
The lockfile pins uuid 8.3.2, which is reported as affected by a buffer bounds check flaw in certain v3/v5/v6 code paths when a caller supplies a buf parameter. This is a real dependency risk, though in this skill's context it appears only as a transitive dependency of node-notifier and there is no evidence in this file that the vulnerable API is directly reachable, so practical exploitability is limited.
The dependency uses a caret range (^10.0.1), which allows newer minor and patch releases to be installed. This can introduce supply-chain risk because future upstream releases may change behavior or contain malicious or vulnerable code without this skill explicitly reviewing and pinning the exact version.
"description": "Windows notifier wrapper for OpenClaw workspace skill",
"license": "UNLICENSED",
"dependencies": {
"node-notifier": "^10.0.1"
}
}
The script defaults the notification title and message to Chinese text literals, which imposes a specific language when the caller does not provide custom values. This is a natural-language policy concern because the file does not offer a locale choice or document the language restriction as an intentional, region-specific constraint.
Detected: suspicious.dangerous_exec