Back to skill

Security audit

ip-risk-scanner

Security checks for vulnerabilities and agentic risk

Overview

This skill performs the advertised IP checks, but it sends IPs to external services, auto-writes reports to a hardcoded Obsidian path, and makes unsupported Claude ban-risk claims.

Review before installing. Use this only if you are comfortable sending queried IP addresses to third-party IP services and with reports being written automatically to the hardcoded Obsidian path. Treat the Claude compatibility score and ban-risk advice as unofficial heuristic output, not an authoritative platform safety decision.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/ip_risk_scanner.py:80
Finding

Unencrypted IP Intelligence API Permits Report and Score Manipulation

Content
View full analysis
/dev/null) if [ -n "$GEO_RESULT" ] && ! echo "$GEO_RESULT" | grep -q '"status":"fail"'; then ``` ### Technical Analysis The scanner retrieves security-relevant IP metadata from `ip-api.com` over plaintext HTTP. HTTP provides neither transport confidentiality nor server authentication. An attacker able to observe or modify traffic—such as a malicious Wi-Fi operator, compromised gateway, ISP-level interceptor, or local network attacker—can read the queried IP address and replace the returned JSON. In the Python scanner, the returned organization, ISP, country, and status fields are trusted by the scoring logic. Modified fields can therefore change deductions, displayed recommendations, and whether a report satisfies the automatic-save threshold. Response authenticity is not verified beyond JSON parsing. The flagged static pre-scan allegation that the shell script uses `curl | bash` was not confirmed. Curl retrieves JSON into a variable and does not execute the response. The actual issue is insecure transport, not remote payload execution. ### Attack Path 1. A user invokes the scanner with a target IP address. 2. The scanner requests `http://ip-api.com/json/` over an attacker-observable network. 3. A network-positioned attacker intercepts the plaintext request. 4. The attacker returns syntactically valid JSON containing favorable country, ISP, organization, and status values. 5. The scanner a ...[truncated 988 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/ip_risk_scanner.py:96
Finding

Proxy and VPN Detection Fails Open on Lookup or Parsing Errors

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (21)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This mismatch specifically includes undeclared outbound requests to third-party services and writes to a fixed local Obsidian path despite empty permissions, while also claiming use of an 'official' Claude review basis that is not substantiated. That combination creates privacy, integrity, and trust risks: user-supplied IPs may be exfiltrated to external services and local notes may be modified without transparent authorization.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

This mismatch specifically includes undeclared outbound requests to third-party services and writes to a fixed local Obsidian path despite empty permissions, while also claiming use of an 'official' Claude review basis that is not substantiated. That combination creates privacy, integrity, and trust risks: user-supplied IPs may be exfiltrated to external services and local notes may be modified without transparent authorization.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

Claiming alignment with 'Claude official' review or banning mechanisms without documented justification is a trust and deception issue. Users may rely on the score as if it were an endorsed platform safety decision, which can influence operational choices and encourage unsafe assumptions about account enforcement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document makes definitive claims about ban outcomes, immediate enforcement, and official policy without evidence, which can mislead users into treating speculative heuristics as factual platform rules. In a security-themed skill, unsupported certainty materially increases harm because it shapes behavior around evasion, trust, and compliance decisions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest describes a security assessment tool that outputs a detailed 0-100 safety score and automatically saves reports for IPs scoring at least 80 to Obsidian. This script instead gathers reverse DNS, WHOIS, geolocation, and ping data, then prints 'IP 基础信息查询完成' without any scoring logic, security evaluation, Claude-based review mechanism, or Obsidian write path.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · scripts/ip_lookup.sh (reported line 54)May include surrounding context.

sh
else
    echo "  ip-api.com 查询失败,尝试其他 API..."
    # 备用 API: ipapi.co
    GEO_RESULT2=$(curl -s "https://ipapi.co/$IP_ADDRESS/json/" 2>/dev/null)
    if [ -n "$GEO_RESULT2" ]; then
        echo "$GEO_RESULT2" | python3 -c "
import sys, json

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script repeatedly claims its scoring is aligned with a 'Claude official IP review mechanism', but the implementation is a local heuristic based on hardcoded keyword matches and arbitrary deductions. In a security tool, false claims of official endorsement can mislead users into making account, network, or compliance decisions on an unjustified basis, especially because the output is presented as authoritative and used to recommend operational behavior.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill declares no tool scope while its documented behavior clearly implies network access, shell-based lookups, and file writes to a local Obsidian vault. Missing or undeclared permissions make the skill harder to audit and can enable unexpected outbound requests or filesystem modification beyond what a user reasonably expects.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

An automatic trigger for essentially any user-provided IP request is overly broad and can cause the skill to run in contexts where the user did not explicitly ask for external lookup, scoring, or storage. In a skill with network and file-write capabilities, broad invocation increases the chance of unintended data processing or persistence.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger examples are ambiguous and broad enough to match routine discussion of an IP address rather than a clear request to perform scanning or save results. Ambiguous scope is risky because it can silently activate network probes and file-writing behavior in situations where the user expects only conversational assistance.

Content

No source excerpt is available for this finding.

Ssd 4

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The skill normalizes maintaining 'safe' IPs and usage patterns to avoid account bans, which can function as operational guidance for evading platform risk controls. While framed as safety advice, the context makes it more dangerous because it blends unsupported enforcement claims with actionable recommendations that could be used to circumvent detection or policy enforcement.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The document includes WebRTC, DNS, Canvas, and font fingerprint leak testing and mitigation advice, which is unrelated to simple IP risk scoring. These sections materially expand the skill toward anti-detection tradecraft by helping users reduce network and browser-identifying signals that abuse-detection systems may rely on.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The reference content goes beyond neutral IP safety assessment and gives operational guidance for lowering the chance of Claude account bans, including preferred IP classes, rate limits, and usage patterns. In the context of a skill that scores IP safety for Claude usage and auto-saves 'safe' IPs, this can facilitate platform-abuse optimization and evasion of provider risk controls.

Content

No source excerpt is available for this finding.

Ssd 4

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The stepwise recommendations on IP selection, forbidden behaviors, request-frequency ceilings, and periodic reputation checking collectively instruct users how to operate beneath Claude's abuse-detection thresholds. Given the skill's purpose of producing 'IP safety' scores and preserving high-scoring IP reports, this context increases the risk that the guidance will be used to evade platform safeguards rather than for legitimate network hygiene.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The inline documentation states the script is for querying geographic location, carrier, ASN, and other basic information. That directly conflicts with the skill-level documentation claiming automated IP security scoring based on an official review mechanism and report saving to Obsidian.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script sends the user-supplied IP address to third-party services (ip-api.com and ipapi.co) without explicit disclosure or consent. Even though an IP may appear non-secret, it can still be sensitive in investigative, internal, or incident-response contexts, and this causes unannounced data sharing outside the local environment.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This Python file contains natural-language descriptions, usage text, and runtime output entirely in Chinese, including the module docstring and CLI messages. Under the language/locale policy, forcing a specific language without user opt-in is a policy violation unless the tool is clearly documented as region-specific, which is not established here.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The docstring says the tool references Scamalytics and BrowserLeaks standards, but the code never queries those services and instead only builds external links to them. This creates deceptive provenance for the risk score, causing users to overtrust the report and potentially act on unsupported security conclusions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script sends user-supplied IP addresses to third-party services such as ip-api.com and ipapi.co without disclosing that behavior in usage text or documentation. In the context of a security-analysis skill, this is more dangerous because users may submit sensitive infrastructure, customer, or internal addresses expecting local-only evaluation, resulting in unintended data disclosure to external providers.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file contains user-facing guidance exclusively in Chinese and does not indicate that the user can choose another language. Under the policy for natural-language violations, forcing a specific language without user opt-in is reportable unless the locale constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

Comments and all user-facing output strings are in Chinese, and the file provides no option for another language or indication that the skill is intentionally limited to a Chinese-speaking context. This creates a natural-language locale constraint without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.