{
  "trust": {
    "tier": "Dangerous",
    "emoji": "🔴",
    "description": "Multiple critical issues — do not install without thorough manual review",
    "score": 20
  },
  "format": "skill",
  "skill": {
    "name": "browser-relay",
    "description": "通过 HTTP relay 控制用户本地 Chromium 浏览器（绕过数据中心 IP 封锁），支持截图发送到 Telegram",
    "version": null,
    "slug": "browser-relay-xiaohongshu"
  },
  "scores": {
    "security": 0,
    "transparency": 5,
    "maintenance": 7,
    "overall": 2
  },
  "permissions": {
    "summary": "No declared permissions — minimal attack surface.",
    "environmentVariables": [],
    "binaries": [],
    "envVarCount": 0,
    "requiredBinCount": 0
  },
  "compoundThreats": [
    {
      "id": "data_exfiltration",
      "severity": "critical",
      "description": "Reads local files AND sends data to external servers — potential data exfiltration",
      "capabilities": [
        "file_read",
        "network_out"
      ],
      "owasp": [
        "LLM02",
        "LLM06"
      ],
      "owaspAsi": [
        "ASI03"
      ]
    },
    {
      "id": "credential_theft",
      "severity": "high",
      "description": "Accesses credentials AND sends data externally — potential credential theft",
      "capabilities": [
        "credential_access",
        "network_out"
      ],
      "owasp": [
        "LLM02"
      ],
      "owaspAsi": [
        "ASI03"
      ]
    },
    {
      "id": "credential_obfuscation",
      "severity": "high",
      "description": "Accesses credentials AND encodes data — may obfuscate stolen credentials",
      "capabilities": [
        "credential_access",
        "data_encoding"
      ],
      "owasp": [
        "LLM02"
      ],
      "owaspAsi": [
        "ASI03",
        "ASI04"
      ]
    },
    {
      "id": "encoded_exfiltration",
      "severity": "critical",
      "description": "Reads files, encodes data, AND sends externally — obfuscated data exfiltration",
      "capabilities": [
        "data_encoding",
        "network_out",
        "file_read"
      ],
      "owasp": [
        "LLM02"
      ],
      "owaspAsi": [
        "ASI03"
      ]
    }
  ],
  "permissionIntegrity": [
    {
      "type": "undeclared_capability",
      "severity": "high",
      "description": "Makes network requests but does not declare curl/wget in required binaries",
      "declared": [],
      "actual": "network_out",
      "owasp": [
        "LLM06"
      ],
      "owaspAsi": [
        "ASI02"
      ]
    },
    {
      "type": "undeclared_capability",
      "severity": "medium",
      "description": "Performs file operations but does not declare file-accessing binaries",
      "actual": "file_read",
      "owasp": [
        "LLM06"
      ],
      "owaspAsi": [
        "ASI02"
      ]
    },
    {
      "type": "undeclared_capability",
      "severity": "high",
      "description": "Code accesses API keys/tokens but declares no environment variables",
      "actual": "credential_access",
      "owasp": [
        "LLM06"
      ],
      "owaspAsi": [
        "ASI02"
      ]
    }
  ],
  "capabilities": [
    "network_out",
    "credential_access",
    "file_read",
    "data_encoding"
  ],
  "findings": [
    {
      "severity": "critical",
      "category": "obfuscation",
      "description": "Unicode homoglyph detected — uses lookalike characters to evade pattern matching",
      "zone": "frontmatter",
      "zoneContext": "declaration",
      "file": "SKILL.md",
      "downgraded": false,
      "sample": "",
      "owasp": [
        "LLM01",
        "LLM03"
      ],
      "owaspAsi": [
        "ASI04",
        "ASI10"
      ],
      "confidence": "pattern"
    },
    {
      "severity": "high",
      "category": "network",
      "description": "HTTP request to bare IP address — common in malicious payloads",
      "zone": "code",
      "zoneContext": "instruction",
      "file": "SKILL.md",
      "downgraded": false,
      "sample": "http://127.0.0.1",
      "owasp": [
        "LLM02",
        "LLM06"
      ],
      "owaspAsi": [
        "ASI03",
        "ASI07"
      ],
      "confidence": "pattern"
    },
    {
      "severity": "medium",
      "category": "network",
      "description": "Opens WebSocket connection",
      "zone": "code",
      "zoneContext": "instruction",
      "file": "README.md",
      "downgraded": false,
      "sample": "WebSocket",
      "owasp": [
        "LLM02",
        "LLM06"
      ],
      "owaspAsi": [
        "ASI03",
        "ASI07"
      ],
      "confidence": "pattern"
    },
    {
      "severity": "critical",
      "category": "shell_injection",
      "description": "Pipe to python — executes piped content as Python code",
      "zone": "code",
      "zoneContext": "instruction",
      "file": "SKILL.md",
      "downgraded": false,
      "sample": "| python3",
      "owasp": [
        "LLM05",
        "LLM06"
      ],
      "owaspAsi": [
        "ASI02",
        "ASI05"
      ],
      "confidence": "pattern"
    },
    {
      "severity": "critical",
      "category": "credentials",
      "description": "Possible hardcoded credential",
      "zone": "code",
      "zoneContext": "instruction",
      "file": "SKILL.md",
      "downgraded": false,
      "sample": "TOKEN=\"<从 session_state 或 memory 获取>",
      "owasp": [
        "LLM02"
      ],
      "owaspAsi": [
        "ASI03"
      ],
      "confidence": "pattern"
    },
    {
      "severity": "low",
      "category": "network",
      "description": "Python aiohttp session — async network access",
      "zone": "prose",
      "zoneContext": "documentation",
      "file": "CLAUDE.md",
      "downgraded": true,
      "sample": "aiohttp.ClientSession",
      "owasp": [
        "LLM02",
        "LLM06"
      ],
      "owaspAsi": [
        "ASI03",
        "ASI07"
      ],
      "confidence": "pattern"
    }
  ],
  "summary": {
    "total": 6,
    "critical": 3,
    "high": 1,
    "medium": 1,
    "low": 1,
    "compoundThreats": 4,
    "integrityIssues": 3
  },
  "trustSignals": {
    "positive": [
      {
        "signal": "described",
        "positive": true,
        "detail": "Has meaningful description"
      },
      {
        "signal": "documented",
        "positive": true,
        "detail": "SKILL.md has substantial documentation"
      }
    ],
    "negative": [
      {
        "signal": "versioned",
        "positive": false,
        "detail": "No version declared"
      },
      {
        "signal": "undeclared_env",
        "positive": false,
        "detail": "Uses credentials in code but declares no env vars"
      }
    ]
  },
  "files": {
    "hasExecutableCode": true,
    "executableFiles": [
      "relay.py",
      "start.sh"
    ],
    "totalFiles": 7
  },
  "humanSummary": "browser-relay scores 20/100 (Dangerous). It declares no permissions. Reads local files AND sends data to external servers — potential data exfiltration. 3 undeclared capabilities detected — the skill does more than its permissions suggest. 3 critical pattern matches in code.",
  "auditedAt": "2026-04-23T03:44:03.806Z",
  "vtEnrichment": {
    "checked": 3,
    "flagged": 0,
    "urls": [
      {
        "url": "https://img.shields.io/badge/GitHub-browser--relay--xiaohongshu-blue",
        "malicious": 0,
        "suspicious": 0,
        "engines": 94,
        "cached": false
      },
      {
        "url": "https://www.xiaohongshu.com",
        "malicious": 0,
        "suspicious": 0,
        "engines": 91,
        "cached": false
      },
      {
        "url": "https://api.telegram.org/bot${TG_BOT_TOKEN}/sendPhoto",
        "malicious": 0,
        "suspicious": 0,
        "engines": 0,
        "cached": false
      }
    ]
  }
}