Back to skill

Security audit

sn-deepresearch-cli

Security checks for vulnerabilities and agentic risk

Overview

The skill’s research purpose is coherent, but it deserves review because it can trigger broad networked research workflows and install mutable global npm packages.

Before installing, confirm that you trust the npm packages and publisher, understand that the install is global and mutable, and review any requested OpenClaw permission changes carefully. Prefer a pinned version or isolated environment when possible, and do not use this skill for sensitive private research unless you are comfortable with the selected harness, search sources, and local configuration changes.

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:39
Finding
Unpinned Packages Installed Globally from npm## Vulnerability Details **File Location**: `SKILL.md`, lines 39–65 **Vulnerability Type**: Unpinned global third-party dependency installation **Risk Level**: Medium The Skill instructs the agent to install mutable npm package versions into the user's global npm environment: ```bash npm install --global sensenova-skills-deepresearch deepresearch --help ``` It also explicitly upgrades the package to the mutable `latest` release: ```bash npm install --global sensenova-skills-deepresearch@latest ``` The optional Claude Code adapter is similarly installed without an exact version: ```bash npm install -g @agentclientprotocol/claude-agent-acp ``` ### Technical Analysis These commands resolve package versions at installation time rather than installing versions whose contents were reviewed and approved with this Skill. The `@latest` tag is explicitly mutable, while an omitted version generally resolves through the registry's current distribution tag. npm installation may execute package lifecycle scripts, including `preinstall`, `install`, and `postinstall`, with the permissions of the account running the agent. Because the packages are installed globally, their executables and supporting files are added to a shared user-level tool location rather than an isolated environment. The Skill does require authorization before installation, which limits silent modification, but user approval does not establish the integrity of whatever package version the registry resolves in the future. The reviewed Skill therefore delegates executable behavior to mutable external dependencies that are outside the audited artifact. ### Attack Path 1. An attacker compromises an npm publisher account, package release process, registry resolution path, or another part of the relevant dependency supply chain. 2. The attacker publishes a malicious version under the expected package name and assigns it to the default or `latest` distributi ...[truncated 1458 chars]
Remediation
## Remediation Suggestions 1. Pin each dependency to an exact reviewed version rather than relying on an omitted version or `@latest`, for example: ```bash npm install --global sensenova-skills-deepresearch@X.Y.Z npm install --global @agentclientprotocol/claude-agent-acp@A.B.C ``` 2. Verify the downloaded package against an approved npm integrity digest or a signed release provenance record before installation. 3. Maintain an allowlist containing approved package names, versions, registry origins, and integrity values. 4. Use a trusted, explicitly configured npm registry and reject unexpected registry overrides. 5. Prefer a project-local or isolated user-scoped installation over a global installation, then invoke the binary using an explicit verified path. 6. Where package compatibility permits, install with lifecycle scripts disabled and separately execute only reviewed setup steps: ```bash npm install --ignore-scripts --save-exact package-name@X.Y.Z ``` 7. If lifecycle scripts are required, inspect the exact package tarball and its dependency tree before authorization and execution. 8. Treat upgrades as separate security-sensitive operations: display the current and proposed exact versions, summarize provenance, and obtain approval for that specific version. 9. Periodically audit and rotate approved versions rather than automatically tracking a mutable distribution tag.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Vague Triggers

Medium
Confidence
92% confidence
Finding
The skill activation text uses very broad triggers such as 'research/deepresearch', '调研', '调查', and scenarios like cross-source verification, which can match many ordinary user requests. This can cause the agent to invoke a networked, installation-capable skill in situations where the user did not clearly intend it, increasing the chance of unnecessary package installation, external access, cost-incurring actions, or execution of long-running processes.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
The skill instructs the agent to infer the report language from the current conversation instead of always obtaining explicit confirmation. This can lead to incorrect assumptions about user preferences and unintended transfer of contextual information into an external tool invocation, especially in multilingual or delegated-work scenarios where conversation language does not equal desired output language.

Natural-Language Policy Violations

Medium
Confidence
84% confidence
Finding
The natural-language metadata and default prompt are written only in Chinese, which can impose a language preference without any stated user opt-in or documented locale-specific justification. Under the policy, fixed language behavior should either offer user choice or clearly explain why the locale restriction is required.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The skill enables implicit invocation while its description covers broad, loosely bounded triggers such as research, investigation, due diligence, fact-checking, and comparative analysis. Without narrowly defined activation criteria and exclusions, the agent may invoke this skill in situations the user did not intend, causing unintended external tool use, installation/upgrade actions, or web-driven workflows that expand the attack surface and may affect privacy, cost, or system state.

Static analysis

No suspicious patterns detected.