Back to skill

Security audit

论文配图 Paper Figure

Security checks for vulnerabilities and agentic risk

Overview

Optional AI review sends more unpublished research content than the privacy documentation discloses, so this skill needs review before use.

Keep confidential or unpublished work in the local workflow unless you authorize the broader AI upload. Review can send notes, metadata and figure text; --vision additionally sends an image. Concept prompts can include research notes. Use a dedicated, limited-balance key if enabling paid features. Export only trusted SVGs, or use an isolated environment because Chrome's sandbox may be disabled automatically. Independently check journal requirements and AI disclosures. This was a static review; gateway retention and downstream handling were not verified.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/ai.mjs
Finding

Default AI review uploads undisclosed research notes and figure text

Content
View full analysis

Impact

Unpublished research notes and figure labels, including result values when present as SVG text, leave the machine despite not being included in the stated upload scope. They are sent to each review member rather than remaining local.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (21)

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 58)May include surrounding context.

md
所有命令都长这样:`node scripts/fig.mjs <cmd> <工作目录> [参数]`。正常结果走 stdout 的 JSON,进度和人话提示走 stderr,失败返回 `{ok:false,error,fix}` 且退出码非 0。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 62)May include surrounding context.

md
| `init` | 建工作区:`brief.md` `figure.json` `data/` `out/` | `node scripts/fig.mjs init ./fig1` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

md
| `spec` | 把 `brief.md` 里的大白话解析成结构化 `figure.json`(本地规则,不调模型) | `node scripts/fig.mjs spec ./fig1` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 64)May include surrounding context.

md
| `chart` | `data/*.csv` + figure.json 里的 data 段 → 期刊风格图表 SVG | `node scripts/fig.mjs chart ./fig1` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 65)May include surrounding context.

md
/<name>.svg`(pipeline/architecture/mechanism/comparison/concept/toc 排版) | `node scripts/fig.mjs render ./fig1 --journal nature` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 66)May include surrounding context.

md
| `check` | 确定性合规检查 → `out/check.json` + 人话报告(每条带 fix) | `node scripts/fig.mjs check ./fig1 --journal ieee` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 67)May include surrounding context.

md
| `export` | 按期刊规格导出 PNG/PDF/TIFF | `node scripts/fig.mjs export ./fig1 --formats png,pdf,tif --dpi 600` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 68)May include surrounding context.

md
| `concept` | AI 概念示意图/封面/TOC 草稿(默认 `gpt-image-2.5-1k`) | `node scripts/fig.mjs concept ./fig1 --n 2` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 69)May include surrounding context.

md
| `review` | 多 AI 会审 → `out/review.json`(**先给修改清单**,分数仅参考) | `node scripts/fig.mjs review ./fig1 --tier econ` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 70)May include surrounding context.

md
| `wallet` | 看密钥来源、余额、充值链接(只读,不花钱) | `node scripts/fig.mjs wallet` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 97)May include surrounding context.

md
node scripts/fig.mjs wallet # 会告诉你缺 key 和下一步

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 135)May include surrounding context.

md
| 付费接口报 `Invalid token`,但 key 明明是刚复制的 | **余额为 0**,不是密钥坏了(网关就这样回) | `node scripts/fig.mjs wallet` 看余额 → 去充值页充 ¥1 再试 |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 129)May include surrounding context.

md
想先看"AI 图会错成什么样",直接看 `references/prompt-library.md` 的「AI 图必错的三件事」和 `references/failure-modes.md` 的样例。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 163)May include surrounding context.

md
- `references/failure-modes.md` —— 被打回的图长什么样:症状 → 原因 → 改法 → 对应命令

Remote AI review uploads paper figure content despite the manifest's assurance that paper data is not uploaded.

High
Category
Excessive Agency
Confidence
98% confidence
Finding

The review workflow sends figure captions, metadata, a serialized portion of spec.data, SVG text, and check results to a remote AI gateway; enabling vision also uploads the figure PNG. Although remote AI review is advertised, the assurance that paper data is not uploaded is misleading because these inputs can contain unpublished results or confidential research, and this module provides no disclosure-and-consent gate before transmission.

Content

No source excerpt is available for this finding.

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env, network.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Journal presets include explicitly unverified specifications despite the manifest's claim of rule-by-rule official verification.

Medium
Category
Excessive Agency
Confidence
96% confidence
Finding

The manifest claims journal requirements have each been checked against official author guidelines and carry verification dates. In assets/journals.json, L075–L085 instead mark Science's widths, height, minimum font size, DPI and formats as unverified; the same pattern appears for several other publishers. These presets therefore do not support the advertised blanket verification claim, even though their uncertainty is disclosed internally.

Content

No source excerpt is available for this finding.

The AI-caption disclosure check reports missing disclosure without examining the caption.

Medium
Category
Excessive Agency
Confidence
99% confidence
Finding

The checker asserts that the caption lacks AI disclosure based only on AI-marker presence and figure type, without reading any caption. It can therefore flag properly disclosed figures while skipping undisclosed concept/TOC figures, making the publication-compliance report unreliable. This is especially consequential for a skill marketed as enforcing AI labeling and submission requirements, although it does not establish code execution or data exfiltration.

Content

No source excerpt is available for this finding.

Edge routing contradicts the documented guarantee that arrows do not cross nodes.

Medium
Category
Excessive Agency
Confidence
97% confidence
Finding

The documentation at L0692–L0693 explicitly claims that obstacle-aware routing guarantees arrows will not pass through nodes. However, L0712 returns a straight horizontal edge whenever endpoint centers align, without checking intervening obstacles; an edge that skips an intermediate node can therefore pass directly through it, violating a stated diagram-quality guarantee.

Content

No source excerpt is available for this finding.

Figure guidance prescribes English text without offering a language choice.

Low
Category
Output Handling
Confidence
96% confidence
Finding

L125 specifies that concept figures contain 3–8 English words, and L147 similarly limits TOC phrases to six English words or no text. These prescriptions constrain the output language without user opt-in or a documented, journal-specific language requirement.

Content

No source excerpt is available for this finding.

The concept-prompt builder specifies Chinese prompts without an explicit user language choice or documented justification.

Low
Category
Output Handling
Confidence
86% confidence
Finding

The comment explicitly specifies producing a Chinese image-generation prompt, and the default builder uses Chinese instruction templates regardless of the user's language. Although callers can supply a complete custom prompt, the interface does not explicitly offer a language choice or justify the fixed-language default.

Content

No source excerpt is available for this finding.