Back to skill

Security audit

PizzINT Monitor

Security checks for vulnerabilities and agentic risk

Overview

This skill fetches a public PizzINT webpage and formats a report, with no evidence of credential access, persistence, local data collection, or destructive behavior.

Before installing, understand that the skill is mostly Chinese-language and may trigger on broad geopolitical terms. It contacts pizzint.watch or asks the agent to open that site in a browser to gather public OSINT-style data; treat the resulting threat report as informal correlation, not as authoritative intelligence or a basis for financial or operational decisions.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill documentation is primarily written in Chinese, including the description, setup context, and risk guidance, while embedding some English terms. This imposes a specific language on users without stating that the skill is Chinese-only, offering an alternative language, or requesting user opt-in, which matches the locale/language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The natural-language instructions and usage guidance are presented exclusively in Chinese, but the document does not state that the skill is region-specific or offer an opt-in language choice. Under the stated policy, forcing a specific language without user opt-in is a locale-policy violation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger list includes broad terms such as '军事情报' and '地缘紧张' that can match many unrelated requests, causing the skill to activate outside its intended PizzINT-specific scope. Over-broad invocation increases the chance of inappropriate use in sensitive geopolitical contexts and can route generic intelligence queries into a specialized, potentially misleading workflow.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This Python file contains natural-language instructions and descriptions primarily in Chinese, including the module header and many user-facing messages. Under the policy rule for language/locale, forcing a specific language without user opt-in is a violation unless the locale restriction is explicitly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · pizzint.py (reported line 17)May include surrounding context.

python
def get_pizzint_data():
    """从 pizzint.watch 获取数据"""
    try:
        result = subprocess.run(
            ['curl', '-s', '--max-time', '10', 'https://pizzint.watch/'],
            capture_output=True, text=True, timeout=15
        )