Back to skill

Security audit

gongfen-calc

Security checks for vulnerabilities and agentic risk

Overview

This local spreadsheet tool needs review because its installation command disables protection against tampered dependency downloads.

Remove --trusted-host and install through a package source with certificate validation enabled, preferably in an isolated environment. Use a dedicated output directory because reruns overwrite reports and baseline data, and protect reports containing business information. Review estimated scores before using them for allocation decisions. Scanner coverage gaps were investigated locally; external dependency distributions and runtime behavior were not tested.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md
Finding

Dependency installation disables package-index TLS authentication

Content
View full analysis

Impact

An intercepting attacker can substitute dependencies that execute with the installing or subsequently running user's privileges. Exact version pins do not authenticate package contents, and the requirements file provides no required distribution hashes.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (17)

Dependency Source Redirection

High
Category
Supply Chain
Confidence
100% confidence
Finding

Dependency resolution is redirected away from a canonical default, adds another source, or uses a destination that cannot be resolved statically.

Content

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

md
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

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 188)May include surrounding context.

md
| `fixture_dirty.xlsx` | 表头在第 3 行、纵向合并聚合成 1 条、**无「合计」字样但等值于上方之和的伪合计行**(靠可加性自检抓到)、工时混排 `2人天/8h/约3天/待定`、金额混排 `¥12,000/1.2万`、480h 与 2 天工期的矛盾行只标记不改分、真实 160h 长任务豁免打折

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 189)May include surrounding context.

md
| `fixture_status_progress.xlsx` | 「状态」列枚举为 已完成/进行中 → **判为进度列、不映射质量维**(否则所有已完成任务同分、E 维退化成常数) |

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 190)May include surrounding context.

md
| `fixture_container.xlsx` | 容器父任务可加性自检(父 40h = 子 15+15+10 → 父不计分);父工时 >> 子之和 → 父判独立任务、子任务 ×0.6 折价 |

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 191)May include surrounding context.

md
| `fixture_serial_date.xlsx` | Excel 序列号日期(46027 = 2026-01-05)反算可用工时,不被当成工时/金额 |

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 192)May include surrounding context.

md
| `fixture_double_header.xlsx` | 双层表头(父行纵向/横向合并 + 子行细分 → 拼成 `工时投入\|投入工时`)+第三行「单位:人天」单位行 → 工时 ×8 |

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 193)May include surrounding context.

md
| `fixture_minimal.xlsx` | 3 维、n_eff<3 → D 分支,工分列降级为「—」 |

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 194)May include surrounding context.

md
| `fixture_only_hours.xlsx` | 仅工时 → C 分支,只出描述统计;**同时作为 `--force-points` 回归用例**(强制出工分不报错) |

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 195)May include surrounding context.

md
| `fixture_gbk.csv` | GBK 编码 CSV,全角 ¥ 金额 |

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 196)May include surrounding context.

md
| `fixture_no_dim.xlsx` | 无可量化维度(只有任务名+负责人)→ **按放宽后的门槛不再阻断**,落 C 分支只出描述统计 + 提示可补充的列(旧口径为退出码 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 197)May include surrounding context.

md
| `fixture_noheader.xlsx` | 表头定位失败 → 退出码 1 + 前 15 行回显 |

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 236)May include surrounding context.

md
预期:`fixture_noheader.xlsx` 退出码 1(故意失败),其余全部 0;末尾打印"全部符合预期"。

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

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.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Mandatory verbatim Chinese report text imposes an output language without user opt-in.

Medium
Category
Output Handling
Confidence
96% confidence
Finding

The heading requires the Chinese declarations to be output verbatim and never omitted, imposing Chinese-language content rather than merely documenting the skill in Chinese. No language choice, opt-in, or justified locale restriction is provided.

Content

No source excerpt is available for this finding.

Baseline persistence silently writes to and can overwrite the supplied file path without disclosure.

Medium
Category
Output Handling
Confidence
90% confidence
Finding

write_baseline writes the payload directly to disk, replacing any existing file at the supplied path. The operation has no confirmation, user-facing log, or explanatory docstring/comment disclosing this write and overwrite behavior.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.