T01 · Skill Instruction Hijacking
- Location
SKILL.md:261- Finding
Mandatory Promotional Content Injected into All User-Facing Outputs
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly performs the advertised bid-document comparison, but it handles sensitive procurement data and forces a non-optional third-party attribution/contact footer into user-facing reports.
Install only if you are comfortable uploading sensitive bid documents into this agent workflow, retaining extracted JSON/images in the workspace until cleanup, and receiving reports with a mandatory author/WeChat footer. Prefer a locked runtime with reviewed dependencies and remove or make the footer optional for formal procurement or compliance reports.
SKILL.md:261Mandatory Promotional Content Injected into All User-Facing Outputs
SKILL.md:32Runtime Installation of Unpinned Third-Party Dependencies
Referenced artifact was not completely inspected
- `SKILL_DIR`:本 Skill 的根目录绝对路径,即本 `SKILL.md` 所在目录。其下的 `scripts/` 即脚本目录。
The README explicitly encourages users to upload bidding documents containing sensitive corporate and personal data such as phone numbers, bank accounts, ID-like registration numbers, addresses, and document metadata, but it does not provide any user-facing warning, consent notice, retention guidance, or handling expectations. In this context, the skill is designed to process exactly the kinds of commercially sensitive and privacy-relevant materials that could create confidentiality, privacy, or compliance exposure if users assume uploads are low-risk or improperly share third-party documents.
The skill instructs the agent to read and write local files (extract_documents.py, build_report.py, extracted.json, report outputs) but does not declare an explicit tool scope or allowed-tools boundary. That creates an authorization ambiguity where an agent/runtime may grant broader filesystem access than intended, increasing the chance of unintended file access or overwrite beyond the user-uploaded workspace.
The markdown explicitly states '仅支持中文标书', which imposes a language constraint on users. Under the policy, forcing a specific language or locale without offering a user choice or opt-in is a natural-language policy violation unless clearly justified as region-specific compliance tooling.
This markdown file presents all operational guidance, schemas, and disclaimers exclusively in Chinese. Under the natural-language policy rule, forcing a specific language without user opt-in or a clearly documented locale justification is a policy concern because users who do not read Chinese may be unable to understand the skill's instructions and limits.
Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.
# ----------------------------------------------------------------------------
def _require(module_name, pip_name):
try:
return __import__(module_name)
except ImportError:
sys.stderr.write(
f"[错误] 缺少依赖 `{pip_name}`。请在托管 Python 环境中执行:\n"
Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.
# ----------------------------------------------------------------------------
def _require(module_name, pip_name):
try:
return __import__(module_name)
except ImportError:
sys.stderr.write(
f"[错误] 缺少依赖 `{pip_name}`。请在托管 Python 环境中执行:\n"
The script extracts sensitive document metadata such as author, last_modified_by, company, manager, title, and timestamps, then writes it into output JSON for downstream processing. In a bid-document review context, these fields can expose personal data, organization identifiers, editing history, and correlation signals beyond the minimum needed, increasing privacy and data-leakage risk if the JSON is retained, shared, or sent to an LLM service.
The script extracts embedded images to disk and records absolute filesystem paths in the JSON output. Absolute paths can reveal host filesystem structure, usernames, workspace layout, or tenant-specific environment details, and the extracted image files themselves may contain sensitive bid content that persists on disk longer than intended.
The natural-language instructions and usage guidance are all presented in Chinese, which effectively forces a specific language for users. The file does not indicate that the skill is region-specific or provide an opt-in or alternative language, so this is a language/locale policy concern under the stated rule.
No suspicious patterns detected.