Back to skill

Security audit

物料清单漏洞情报免费版

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed SBOM and dependency vulnerability helper that uses local package files and public vulnerability/package APIs in ways that fit its stated purpose.

Install only if you are comfortable with dependency names and versions from the project being sent to public package and vulnerability services. For private or embargoed projects, review or redact package names first, and inspect generated shell commands before running them on unusual package names.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The skill claims it avoids interpolating user input into shell commands, but the examples repeatedly embed package names and versions directly into curl, npm, and shell contexts. In an agent skill with exec permission, unsanitized or weakly validated input can become shell metacharacter injection or malformed request injection, leading to unintended command execution or exfiltration.

External Transmission

Medium
Category
Data Exfiltration
Content
local ecosystem=$3  # npm 或 PyPI
    echo "检查: ${pkg}@${version} (${ecosystem})"

    RESULT=$(curl -s -X POST "https://api.osv.dev/v1/query" \
        -H "Content-Type: application/json" \
        -d "{
            \"package\": {
Confidence
93% confidence
Finding
This skill transmits package names and versions to an external service (OSV API). While such transmission is core to vulnerability lookup, it still exports dependency metadata from the local project; in private or sensitive repositories, dependency names and versions can reveal internal technology choices or unreleased components.

External Transmission

Medium
Category
Data Exfiltration
Content
VER=$(curl -s "https://registry.npmjs.org/${PACKAGE}" | jq -r '."dist-tags".latest')
fi

curl -s -X POST "https://api.osv.dev/v1/query" \
    -H "Content-Type: application/json" \
    -d "{\"package\": {\"name\": \"${PACKAGE}\", \"ecosystem\": \"npm\"}, \"version\": \"${VER}\"}" | \
    jq '.vulns | if . then "发现 \(length) 个漏洞" else "未发现已知漏洞" end'
Confidence
93% confidence
Finding
The single-package assessment sends package and version information to external registries and OSV. In context this is expected functionality, but it remains a privacy and metadata-leak risk if used on internal, proprietary, or embargoed package names.

External Transmission

Medium
Category
Data Exfiltration
Content
local ecosystem=$3  # npm 或 PyPI
    echo "检查: ${pkg}@${version} (${ecosystem})"

    RESULT=$(curl -s -X POST "https://api.osv.dev/v1/query" \
        -H "Content-Type: application/json" \
        -d "{
            \"package\": {
Confidence
93% confidence
Finding
This skill transmits package names and versions to an external service (OSV API). While such transmission is core to vulnerability lookup, it still exports dependency metadata from the local project; in private or sensitive repositories, dependency names and versions can reveal internal technology choices or unreleased components.

External Transmission

Medium
Category
Data Exfiltration
Content
VER=$(curl -s "https://registry.npmjs.org/${PACKAGE}" | jq -r '."dist-tags".latest')
fi

curl -s -X POST "https://api.osv.dev/v1/query" \
    -H "Content-Type: application/json" \
    -d "{\"package\": {\"name\": \"${PACKAGE}\", \"ecosystem\": \"npm\"}, \"version\": \"${VER}\"}" | \
    jq '.vulns | if . then "发现 \(length) 个漏洞" else "未发现已知漏洞" end'
Confidence
93% confidence
Finding
The single-package assessment sends package and version information to external registries and OSV. In context this is expected functionality, but it remains a privacy and metadata-leak risk if used on internal, proprietary, or embargoed package names.

Static analysis

No suspicious patterns detected.