T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Mandatory Unpinned Dependency Installation Creates a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is purpose-aligned but needs review because it uploads sensitive resume data and requires installing an unspecified companion skill.
Review before installing. Only use it if you trust Pincaimao with resumes and job descriptions, understand that uploaded files are stored remotely, and can verify the exact source of `pincaimao-basic` before allowing any installation or loading. Prefer explicit approval before each upload of candidate materials.
SKILL.md:22Mandatory Unpinned Dependency Installation Creates a Supply-Chain Risk
SKILL.md:66User-Controlled Values Are Interpolated into JSON Without Escaping
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
---
name: pincaimao-interview-question
description: 聘才猫 - 面试出题大师 Use when calling Pincaimao Interview Question Master API to generate interview questions based on a job description and candidate resume. Requires PCM_INTERVIEW_QUESTIONS_KEY env var.
version: 1.0.1
allowed-tools:
- Bash
metadata:
openclaw:
emoji: "❓"
homepage: https://www.pincaimao.com
primaryEnv: PCM_INTERVIEW_QUESTIONS_KEY
requires:
env:
- PCM_INTERVIEW_QUESTIONS_KEY
bins:
- curl
- python3
---
# 聘才猫 - 面试出题大师
**REQUIRED:** 请先检查是否已安装 `pincaimao-basic`,�
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
JOB_TITLE="高级销售专员"
# Step 1: 上传简历
UPLOAD=$(curl -s -X POST 'https://api.pincaimao.com/agents/v1/files/upload' \
-H "Authorization: Bearer $PCM_INTERVIEW_QUESTIONS_KEY" \
-F "file=@$RESUME_FILE")
COS_KEY=$(echo "$UPLOAD" | python3 -c "import sys,json; print(json.load(sys.stdin)['cos_key'])")
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
# Step 2: 生成面试题
QUERY=$(echo "$JOB_INFO" | cut -c1-20)
curl -s -X POST 'https://api.pincaimao.com/agents/v1/chat/chat-messages' \
-H "Authorization: Bearer $PCM_INTERVIEW_QUESTIONS_KEY" \
-H 'Content-Type: application/json' \
-d "{
The file upload step transmits the entire resume document to api.pincaimao.com and stores it in remote cloud object storage. Because resumes often contain highly sensitive personal information, this external transmission creates meaningful privacy and compliance risk if performed without informed consent or data minimization.
JOB_TITLE="高级销售专员"
# Step 1: 上传简历
UPLOAD=$(curl -s -X POST 'https://api.pincaimao.com/agents/v1/files/upload' \
-H "Authorization: Bearer $PCM_INTERVIEW_QUESTIONS_KEY" \
-F "file=@$RESUME_FILE")
COS_KEY=$(echo "$UPLOAD" | python3 -c "import sys,json; print(json.load(sys.stdin)['cos_key'])")
This call sends structured candidate-evaluation inputs to an external AI endpoint, including job information, uploaded file reference, and other parameters. In the context of an interview-question skill, the transmission is expected, but it still represents a real privacy-sensitive outbound flow to a third party.
# Step 2: 生成面试题
QUERY=$(echo "$JOB_INFO" | cut -c1-20)
curl -s -X POST 'https://api.pincaimao.com/agents/v1/chat/chat-messages' \
-H "Authorization: Bearer $PCM_INTERVIEW_QUESTIONS_KEY" \
-H 'Content-Type: application/json' \
-d "{
This call sends structured candidate-evaluation inputs to an external AI endpoint, including job information, uploaded file reference, and other parameters. In the context of an interview-question skill, the transmission is expected, but it still represents a real privacy-sensitive outbound flow to a third party.
# Step 2: 生成面试题
QUERY=$(echo "$JOB_INFO" | cut -c1-20)
curl -s -X POST 'https://api.pincaimao.com/agents/v1/chat/chat-messages' \
-H "Authorization: Bearer $PCM_INTERVIEW_QUESTIONS_KEY" \
-H 'Content-Type: application/json' \
-d "{
The Security & Privacy section narrows the transmitted data to resume files, job descriptions, and contract text, but the request example clearly includes additional fields such as job_title, question_number, and can_outputAnalysis. This is a documentation-to-behavior contradiction rather than a mere omission because it specifically describes what data is transmitted.
No suspicious patterns detected.