Back to skill

Security audit

ieee-reference-manager

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent IEEE bibliography helper, but it tells the agent to run project-provided Python helper scripts by filename, which creates a review-worthy code execution risk.

Use this only on trusted LaTeX/BibTeX projects. Before allowing any Bash command, inspect the exact script contents and path, approve the command explicitly, and avoid running project-supplied analyze_bib.py or nameTranslate.py in an environment with credentials or unrelated files. Expect DOI checks to use web access and review all proposed file edits before applying them.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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
Findings (1)

T07 · Tool Hijacking and Spoofing

Error
Location
SKILL.md:148
Finding
Execution of Untrusted Project-Local Helper Scripts## Vulnerability Details **File Locations**: - `SKILL.md:148-157` - `references/utility-scripts.md:3` - `references/utility-scripts.md:47` - `references/utility-scripts.md:93` **Vulnerability Type**: Trusting and executing attacker-controlled local tools based solely on expected filenames **Risk Level**: High ### Vulnerable Code Snippets English translation of the relevant documentation in `SKILL.md:148-157`: ```markdown The project may contain the following helper scripts. If present, use them preferentially: ### analyze_bib.py - Function: Parse .bib files, detect duplicates, and analyze citation coverage - Invocation: `python analyze_bib.py` ### nameTranslate.py - Function: Replace hard-coded journal names in .bib files with IEEE standard macros - Invocation: `python nameTranslate.py` ``` English translation of the relevant instruction in `references/utility-scripts.md:3`: ```markdown When these scripts exist in the project, preferentially invoke them directly. If they do not exist, use the following logic to temporarily write equivalent code or process the data directly with the LLM. ``` The documented commands at `references/utility-scripts.md:47` and `references/utility-scripts.md:93` are: ```bash python analyze_bib.py ``` ```bash python nameTranslate.py ``` ### Technical Analysis The Skill instructs the agent to execute helper scripts found in the user's document project based only on the filenames `analyze_bib.py` and `nameTranslate.py`. It does not require the agent to inspect their complete contents, validate their provenance or integrity, obtain explicit approval, or execute them in a restricted sandbox. These scripts are not bundled in the audited Skill package. Consequently, their contents are controlled by whoever supplies the project being reviewed. Python executes top-level statements immediately, so a malicious file does not need to implement the advertised analysis func ...[truncated 2415 chars]
Remediation
## Remediation Suggestions 1. Remove the instruction to preferentially execute scripts merely because they have expected filenames. 2. Require the agent to read and audit the complete contents of every project-local script before considering execution. Reject scripts containing unrelated filesystem access, network access, subprocess invocation, dynamic evaluation, obfuscated content, or undeclared dependencies. 3. Present the exact command, script path, purpose, audit result, and expected file changes to the user, then require explicit approval before execution. 4. Prefer immutable helper scripts shipped as part of the reviewed Skill package rather than project-local implementations. Pin and verify their cryptographic hashes or signatures. 5. Resolve and validate the canonical script path before execution. Do not rely on the current working directory, `PATH`, aliases, wrappers, or filename-only lookup. 6. Execute approved scripts in a sandbox with: - Read-only access to input files by default. - Write access limited to a dedicated output directory. - No access to credentials, unrelated workspace files, or sensitive environment variables. - Network access disabled unless separately justified and approved. - Process, time, memory, and output limits. 7. Avoid executing scripts for operations that can be completed with existing constrained tools such as file reading, pattern matching, and deterministic in-memory analysis. 8. Remove `Bash` and other broad tools from `allowed-tools` if they are not essential. If Bash remains necessary, enforce command allowlisting and least-privilege execution. 9. Update `references/utility-scripts.md` so that it describes algorithms as non-executable reference material and explicitly prohibits running project-supplied implementations without verification and approval.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The manifest description and the entire skill documentation are written as a Chinese-only assistant for managing IEEE references, with no indication that the user may choose another language. This creates a language/locale policy concern because it imposes a specific language by default without opt-in or a documented region-specific justification.

External Model or Provider Selection

Medium
Category
Excessive Agency
Content
name: ieee-reference-manager
description: IEEE Trans 论文参考文献全流程管理助手。负责参考文献的格式校验、引用审查、BibTeX 条目修复、期刊名标准化、DOI/元数据在线验证、Early Access 处理、作者数量合规、重复条目检测等。当用户需要"检查参考文献"、"修复引用格式"、"验证 DOI"、"整理 bib 文件"、"参考文献审查"时触发。
allowed-tools: Read, Edit, Write, Bash, Glob, Grep, WebSearch, WebFetch, Agent
model: opus
---

# IEEE Trans 论文参考文献管理助手
Confidence
90% confidence
Finding
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The title and the entire document are written in Chinese, which imposes a specific language/locale on users. The file does not indicate that Chinese is optional, nor does it explain that the skill is intentionally region- or audience-specific.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The entire skill guidance is written exclusively in Chinese, including headings, instructions, and usage notes, with no indication that users may choose another language or that the skill is intended only for a Chinese-language context. This creates a natural-language locale constraint that appears to be imposed by the skill content rather than documented as optional or region-specific.

Static analysis

No suspicious patterns detected.