Back to skill

Security audit

Baidu Web Search

Security checks for vulnerabilities and agentic risk

Overview

This web-search skill is mostly coherent, but its documented shell invocation can expose users to command-injection risk and its installation/credential handling need review before use.

Install only if you are comfortable sending search queries to SkillBoss/HeyBossAI with your API key. Prefer platform-managed SKILLBOSS_API_KEY over config.json, do not commit local credential files, and avoid using this skill through a shell command that interpolates raw user input; the publisher should document argument-array execution, pin dependencies, add a lockfile, and include the promised .gitignore.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:103
Finding

Shell Command Injection Through Direct Query Interpolation

Content
View full analysis
" [result-count] ``` The documented execution process directs an agent to place a user-derived search query inside a shell command. The examples use the same direct interpolation pattern. ### Technical Analysis Double quotes are not a complete security boundary for untrusted shell input. If an agent constructs this command as text and passes it to a shell, an attacker can provide a query containing a closing quote followed by shell operators or command substitution syntax. The JavaScript implementation obtains the query through `process.argv` and does not itself evaluate it as code. The vulnerability exists at the invocation boundary described by the skill instructions: an agent may concatenate attacker-controlled text into a command string before `search.js` starts. An illustrative malicious query could terminate the quoted argument and append another shell command. The precise payload depends on the operating system and shell used by the agent. ### Attack Path 1. An attacker submits a search request containing quote-breaking shell syntax. 2. The agent extracts that request as the search query. 3. Following `SKILL.md`, the agent embeds the query directly into the documented command string. 4. The agent invokes the command through a shell. 5. The shell interprets the injected metacharacters rather than treating the entire query as one inert argument. 6. The injected command runs with the same operating-system identity and permissions as the agent process. ### Impact Assessment Successful exploitation can execute arbitrary local commands with the agent's privileges. Depending on those privileges, an attacker could read or modify accessible files, access environment variables and crede ...[truncated 240 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
package.json:7
Finding

Non-Reproducible Installation Due to an Unpinned Dependency

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:43
Finding

Documented Credential-File Exclusion Is Missing From the Package

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (11)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill explicitly relies on environment-based secrets (SKILLBOSS_API_KEY) and script execution, but it does not declare a restrictive tool scope such as allowed tools or permissions. In agents that auto-route skills, this can let the skill be invoked without clear sandbox boundaries, increasing the chance of unintended access to environment data or execution surfaces beyond what reviewers expect.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation guidance includes very common phrases like “查一下”, “搜一下”, “最近”, “今天”, and “今年”, which overlap with ordinary user conversation. Overbroad triggers can cause the skill to activate unexpectedly, sending benign user queries to an external web-search flow and expanding data exposure or unnecessary tool use.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The '何时使用' section defines broad, ambiguous trigger conditions without boundaries, so many general fact, product, person, or event questions may spur automatic network use. This increases the risk of unintended external requests, privacy leakage of user queries, and tool overreach in contexts where offline reasoning would have been sufficient.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/search.js (reported line 7)May include surrounding context.

js
const path = require('path');
const axios = require('axios');

const SKILLBOSS_API_URL = 'https://api.heybossai.com/v1/pilot';
const SKILL_ROOT = path.resolve(__dirname, '..');
const CONFIG_PATH = path.join(SKILL_ROOT, 'config.json');
const DEFAULT_NUM_RESULTS = 20;

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

Error messages are hard-coded in Chinese, which imposes a specific language on users regardless of their locale or preference. The file does not offer localization, language selection, or any justification that this skill is intended only for Chinese-speaking users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This user-visible error string is hard-coded in Chinese, which may violate language/locale policy when users have not opted into that language. No alternative language support or documented locale restriction is present in the file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script sends the user-provided query and authentication token to an external service via HTTP POST, which transmits user data off the local system. There is no confirmation prompt, user-facing notice, or inline warning near the network call disclosing that the query will be sent to a third-party endpoint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This user-visible output is hard-coded in Chinese, imposing a specific language without user opt-in. The file contains no mechanism for selecting another language and no documented reason for the locale restriction.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This error message is emitted directly to users in Chinese only, which can conflict with organizational language/locale policy absent user choice. The code does not indicate that the skill is intentionally limited to a Chinese-language audience.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
93% confidence
Finding

The dependency uses a caret range (^1.6.0), which allows automatic installation of newer minor and patch releases instead of a single vetted version. This creates supply-chain uncertainty and can unintentionally introduce vulnerable or behavior-changing versions during future installs, especially for a network-facing package used for web retrieval.

Content

Scanner excerpt · package.json (reported line 7)May include surrounding context.

json
"license": "MIT-0",
  "private": true,
  "dependencies": {
    "axios": "^1.6.0"
  }
}

Unverifiable Dependency: axios has 16 known advisory(ies) (CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
88% confidence
Finding

Axios has multiple known advisories, and because the manifest specifies a version range rather than an exact installed version, it is not possible to verify whether deployments resolve to an affected release. In a web-search skill that makes outbound HTTP requests, vulnerable HTTP client behavior can be more consequential because it directly processes attacker-influenced URLs, redirects, headers, and proxy settings.

Content

No source excerpt is available for this finding.