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

Content
View full analysis

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
View 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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 40)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 43)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 46)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 49)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 54)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 59)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 93)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 99)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · skill.md (reported line 105)May include surrounding context.

md
node scripts/patent-scout.js --query "工业防火墙"

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
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.

Content

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

json
"author": "闫老师团队",
  "license": "MIT",
  "dependencies": {
    "axios": "^1.6.0",
    "cheerio": "^1.0.0-rc.12",
    "commander": "^11.0.0",
    "https-proxy-agent": "^7.0.0"

Unpinned Dependencies

Low
Category
Supply Chain
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.

Content

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

json
"dependencies": {
    "axios": "^1.6.0",
    "cheerio": "^1.0.0-rc.12",
    "commander": "^11.0.0",
    "https-proxy-agent": "^7.0.0"
  }
}

Unpinned Dependencies

Low
Category
Supply Chain
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.

Content

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

json
"axios": "^1.6.0",
    "cheerio": "^1.0.0-rc.12",
    "commander": "^11.0.0",
    "https-proxy-agent": "^7.0.0"
  }
}

Missing User Warnings

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.