Back to skill

Security audit

Patent Scout

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to perform patent searches as advertised, but its dependency and install setup creates supply-chain risk that should be reviewed before use.

Review or update the npm dependency chain before installing, preferably using a trusted registry and a locked install. Use the skill only with patent queries you are comfortable sending to Baidu or Google Patents, and choose output paths carefully because --output writes directly to the named file.

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
package-lock.json:18
Finding
Dependencies Retrieved from a Third-Party npm Mirror## Vulnerability Details **File Location**: `package-lock.json:18-23` **Vulnerability Type**: Third-party dependency supply-chain exposure **Risk Level**: Medium ### Vulnerable Code ```json "node_modules/agent-base": { "version": "7.1.4", "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.4.tgz", "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "license": "MIT", "engines": { ``` Numerous additional `resolved` fields in `package-lock.json` use `https://registry.npmmirror.com/` for packages including Axios, Cheerio, and their transitive dependencies. ### Technical Analysis The installation instructions in `README.md` and `skill.md` direct users to run `npm install`. The lockfile causes npm to retrieve most dependency archives from a third-party mirror rather than the official npm registry. The recorded SHA-512 integrity values provide meaningful protection against a mirror independently replacing an archive with different content: npm should reject an archive that does not match its lockfile hash. However, the project still places availability and distribution trust in an additional external operator. The risk becomes exploitable if the mirror and the lockfile-generation or update process are compromised together, if integrity verification is bypassed, or if future dependency updates are accepted from the mirror without independent review. This is a supply-chain hardening issue rather than evidence that any currently locked package is malicious. No dependency lifecycle scripts were identified in the reviewed lockfile. ### Attack Path 1. An attacker compromises or gains control over the third-party mirror, or otherwise manipulates dependency resolution during a future lockfile update. 2. A malicious package archive and corresponding lockfile metadata are introduced during that update. Merely changing an archive on the mirror ...[truncated 1074 chars]
Remediation
## Remediation Suggestions 1. Configure npm to use the official registry: ```bash npm config set registry https://registry.npmjs.org/ ``` 2. Regenerate `package-lock.json` from a trusted environment so all `resolved` fields reference `https://registry.npmjs.org/`. 3. Use `npm ci` in documentation and automated deployments to enforce the reviewed lockfile without silently updating dependency resolution. 4. Consider pinning direct dependencies to exact versions instead of version ranges. 5. Require review of dependency and integrity changes whenever the lockfile is updated. 6. Add automated dependency vulnerability and provenance checks using tools such as `npm audit`, lockfile linting, and software composition analysis. 7. In higher-assurance environments, proxy approved npm packages through an organization-controlled registry with immutability, access controls, malware scanning, and audit logging.
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 Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (25)

Known Vulnerable Dependency: axios==1.13.6 — 16 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

High
Category
Supply Chain
Confidence
95% confidence
Finding
The lockfile pins axios 1.13.6, which the scanner reports as having multiple known advisories including SSRF/proxy-bypass and prototype-pollution-related request/response manipulation issues. In a skill that performs outbound patent searches over HTTP(S), a vulnerable HTTP client is directly security-relevant because user-controlled query inputs and proxy/environment behavior may influence requests and redirects.

Known Vulnerable Dependency: form-data==4.0.5 — 1 advisory(ies): CVE-2026-12143 (form-data: CRLF injection in form-data via unescaped multipart field names and f)

High
Category
Supply Chain
Confidence
80% confidence
Finding
form-data 4.0.5 is reported as vulnerable to CRLF injection via unescaped multipart field names/filenames. This package is pulled in by axios; while a patent-search skill may not obviously upload files, the dependency is present and could become exploitable if multipart requests are added or if untrusted values are inserted into form-data fields.

Known Vulnerable Dependency: undici==7.24.4 — 12 advisory(ies): CVE-2026-6733 (undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse); CVE-2026-13697 (undici vulnerable to cross-user information disclosure and parse-time crash via ); CVE-2026-16728 (undici vulnerable to downstream response desynchronization via retry interceptor) +9 more

High
Category
Supply Chain
Confidence
88% confidence
Finding
undici 7.24.4 is flagged with multiple HTTP parsing, queue poisoning, and response desynchronization issues. This dependency is brought in through cheerio and is part of network-capable functionality; in a scraping/search skill that fetches remote pages, flaws in the HTTP stack can lead to request smuggling-style effects, response confusion, or cross-request data exposure under adverse network conditions.

Known Vulnerable Dependency: axios==1.13.6 — 16 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

High
Category
Supply Chain
Confidence
98% confidence
Finding
The skill depends on axios, and the finding indicates resolution to a version with multiple known advisories, including SSRF-related proxy bypass and man-in-the-middle/prototype-pollution gadget issues. Because this skill performs remote patent lookups over the network and may use proxy functionality, the context makes these issues more dangerous: outbound requests, credentials, and responses may be exposed or manipulated.

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/patent-scout.js --query "工业防火墙"
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The README title and description are entirely in Chinese and present the skill as Chinese-only, with no indication that users can choose another language or that the locale restriction is required. This matches the policy category for language or locale constraints without user opt-in or clear justification.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The README explicitly advertises live web searching and writing results to an output file, but it does not warn users that queries will be transmitted to third-party services or that local files may be created/overwritten. In an agent skill context, this can cause unintended data disclosure or filesystem side effects if a user or upstream agent passes sensitive search terms or unsafe output paths.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The HTTP request header hard-codes `Accept-Language` to prefer `zh-CN`, which imposes a specific locale behavior. The file does not provide a user opt-in or configurable language choice, and the broader script messaging/output is also explicitly Chinese-only.

Natural-Language Policy Violations

Medium
Confidence
80% confidence
Finding
The natural-language documentation is entirely in Chinese and specifies Chinese-keyword search/output conventions, but it does not state that the skill is intentionally China/Chinese-only or offer an opt-in language/locale choice. SQP-3 applies to language or locale policy violations when a specific language is imposed without user opt-in or clear justification.

Known Vulnerable Dependency: follow-redirects==1.15.11 — 1 advisory(ies): CVE-2026-40895 (follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Ta)

Low
Category
Supply Chain
Confidence
83% confidence
Finding
follow-redirects 1.15.11 is flagged for leaking custom authentication headers across cross-domain redirects. This skill is a web-fetching tool, so redirect behavior is part of its normal operation; if any auth, cookies, API keys, or internal headers are ever attached to requests, a malicious redirect target could receive them.

Vague Triggers

Low
Confidence
80% confidence
Finding
The manifest description "Multi-source patent search tool" states the capability but does not provide any specific trigger phrases, scope constraints, or exclusion conditions. In a manifest file, this kind of broad description can contribute to ambiguous activation because it does not distinguish patent-specific requests from more general search-related tasks.

Natural-Language Policy Violations

Low
Confidence
65% confidence
Finding
The natural-language metadata includes a Chinese author/team name, which may indicate locale-specific targeting, but the manifest does not document any user language choice or region-specific justification. This is a weak signal, but under policy review for natural-language constraints, locale-affecting metadata should be clearly documented when relevant.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"author": "闫老师团队",
  "license": "MIT",
  "dependencies": {
    "axios": "^1.6.0",
    "cheerio": "^1.0.0-rc.12",
    "commander": "^11.0.0",
    "https-proxy-agent": "^7.0.0"
Confidence
89% confidence
Finding
Using a caret range for axios permits automatic installation of newer compatible releases, which can introduce unexpected code changes or pull in a compromised version if the supply chain is attacked. In a network-facing search tool that fetches remote patent data, dependency drift increases the risk of silently inheriting vulnerable or malicious behavior.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"dependencies": {
    "axios": "^1.6.0",
    "cheerio": "^1.0.0-rc.12",
    "commander": "^11.0.0",
    "https-proxy-agent": "^7.0.0"
  }
}
Confidence
84% confidence
Finding
The caret-pinned commander dependency allows version drift over time, reducing build reproducibility and increasing exposure to future supply-chain compromise or newly introduced insecure behavior. While commander is not obviously the highest-risk component here, unpinned CLI dependencies still weaken integrity controls.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"axios": "^1.6.0",
    "cheerio": "^1.0.0-rc.12",
    "commander": "^11.0.0",
    "https-proxy-agent": "^7.0.0"
  }
}
Confidence
86% confidence
Finding
Allowing https-proxy-agent to float within a semver range is more sensitive than a typical library because it can influence outbound network routing and proxy behavior. If a bad or vulnerable update is pulled, network traffic handling could be altered in ways that affect confidentiality or request integrity.

Missing User Warnings

Low
Confidence
93% confidence
Finding
The skill explicitly performs live searches against Baidu and Google Patents but does not clearly disclose to the user that their query terms may be sent to third-party services. This creates a privacy and transparency issue, especially if users submit sensitive research topics, internal project names, or proprietary patent interests.

Missing User Warnings

Low
Confidence
86% confidence
Finding
This markdown file includes a concrete example using `--output results.md`, which performs a file write, but the surrounding documentation does not warn that local files may be created or overwritten. For markdown files, SQP-2 applies when descriptions omit warnings about behaviors that could affect user data or system integrity.

Static analysis

No suspicious patterns detected.