T09 · Insecure Skill Coding Practices
- Location
scripts/transcribe.py:107- Finding
Arbitrary outbound requests through weak short-link validation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill mostly does what it says, but its URL handling can make the agent contact non-Bilibili or internal network addresses despite claiming a narrower network boundary.
Install only if you are comfortable with a local tool that makes outbound network requests and downloads Python dependencies/models. Use trusted Bilibili links, prefer full bilibili.com/video/BV... URLs over short links, run it in a constrained environment if possible, and consider pinning faster-whisper before use.
scripts/transcribe.py:107Arbitrary outbound requests through weak short-link validation
scripts/transcribe.py:185Unvalidated API-provided subtitle and audio URLs permit unintended network access
SKILL.md:58Unpinned third-party dependency installation creates supply-chain risk
The skill requests or instructs use of powerful capabilities (environment access, file read/write, network, and shell/Python execution) but does not declare an explicit machine-readable tool scope such as permissions or allowed-tools. This creates a policy gap: an agent or reviewer cannot reliably enforce least privilege, increasing the chance the skill is executed with broader access than intended.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
def fetch_video_info(bvid: str) -> dict:
"""从B站公开 API 获取视频元数据"""
api_url = f"https://api.bilibili.com/x/web-interface/view?bvid={bvid}"
raw = _http_get(api_url, BILI_HEADERS, max_timeout=20)
data = json.loads(raw)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
def fetch_video_info(bvid: str) -> dict:
"""从B站公开 API 获取视频元数据"""
api_url = f"https://api.bilibili.com/x/web-interface/view?bvid={bvid}"
raw = _http_get(api_url, BILI_HEADERS, max_timeout=20)
data = json.loads(raw)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
def fetch_video_info(bvid: str) -> dict:
"""从B站公开 API 获取视频元数据"""
api_url = f"https://api.bilibili.com/x/web-interface/view?bvid={bvid}"
raw = _http_get(api_url, BILI_HEADERS, max_timeout=20)
data = json.loads(raw)
This code sets the output document language to zh-CN, which enforces a specific locale in the generated report. The file also defaults the transcription language to Chinese elsewhere, and there is no user-facing opt-in or explanation that the HTML report is intended to be Chinese-only.