Back to skill

Security audit

Excel全能工具箱

Security checks for vulnerabilities and agentic risk

Overview

This Excel skill is mostly a real spreadsheet toolbox, but it needs Review because some write/protection scripts can overwrite workbooks despite the skill promising backups.

Install only if you are comfortable with a local Excel automation skill that can modify, encrypt, decrypt, and create spreadsheet files. For important business, HR, payroll, or financial workbooks, require an explicit --output path or make your own backup first, because some scripts can overwrite the original file despite the documentation promising automatic backups.

Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (76)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
该代码块的核心行为很明确:从 Excel/CSV 读取数据后,生成统计分析报告,包括基础统计、数值列统计、文本列统计、日期分布、相关性和 IQR 异常值检测。这与声明中的“数据分析”子能力是吻合的,但声明把技能描述成覆盖几乎所有常见 Excel 处理任务的全能工具箱,且声称只要涉及 Excel/表格文件操作都应触发。代码并未实现这些广泛能力中的大多数,既没有修改/写回工作簿结构,也没有执行合并、拆分、关联匹配、去重清洗、模板填充、样式/条件格式、公式/图表/透视表生成、差异对比、图片插入或密码保护。因此这是描述显著夸大、主用途范围失真的情况,应判定为不匹配。

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
The description presents a comprehensive Excel toolbox that should handle a wide range of spreadsheet manipulation, analysis, formatting, protection, and templating tasks, and even says Excel/table/xlsx/csv operations in general should trigger it. However, the supplied code only implements one specific subset: generating charts from tabular data and writing the result to a new Excel file. This is not malicious or undeclared resource access, but it is a material description-behavior mismatch because the declared purpose substantially overstates the implemented capabilities and implies broad Excel automation that this code does not provide. The chart-related portion of the description is accurate, but the overall declared capability set is far broader than the actual behavior of this code chunk.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The supplied code is specifically an 'Excel 函数公式批量填充工具' focused on inserting formulas into workbook cells using openpyxl. It supports selecting a sheet, choosing a target column, applying a row-based formula template, and generating a few preset formulas (sum across columns, average across columns, COUNTIF, VLOOKUP). It also performs limited validation by warning when referenced rows/columns exceed the worksheet bounds. It does not implement the broad toolbox behavior described in the declaration, nor does it process CSV files or provide most of the advertised Excel features. This is a description-behavior mismatch because the declared purpose substantially overstates the actual capabilities and trigger scope of this code chunk.

Vague Triggers

High
Confidence
98% confidence
Finding
The description says the skill should trigger whenever a request involves Excel/table/xlsx/csv operations, even if the user does not explicitly invoke the toolbox. Terms like '表格', 'csv', and broad spreadsheet-related scenarios are common in everyday work requests, and the file provides no clear negative examples beyond a few exclusions, increasing the risk of unintended invocation.

Ae1

High
Category
analysis-evasion
Content
| 1 | 📋 智能预览 | `peek.py` | "帮我看看这个Excel有几个Sheet、每个Sheet有什么列" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 1 | 📋 智能预览 | `peek.py` | "帮我看看这个Excel有几个Sheet、每个Sheet有什么列" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 1 | 📋 智能预览 | `peek.py` | "帮我看看这个Excel有几个Sheet、每个Sheet有什么列" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 2 | 📖 读取Excel | `read_excel.py` | "读取sales.xlsx的Sheet2,取A~D列前100行" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 3 | ✏️ 写入/创建 | `write_excel.py` | "把这份数据生成一个Excel文件" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 4 | 🔄 格式互转 | `convert.py` | "把这个csv转成xlsx"、"把Excel导出为JSON" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 5 | 📎 合并文件 | `merge.py` | "把这5个月度报表合并成一个年度汇总表" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 6 | ✂️ 拆分文件 | `split.py` | "把大表按Sheet拆成独立文件" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 8 | 🔗 VLOOKUP/关联 | `vlookup.py` | "用工号把花名册和考勤表关联起来" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 10 | 🧽 数据清洗 | `clean.py` | "把空行删掉,手机号统一11位,日期统一YYYY-MM-DD" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 11 | 📄 模板填充 | `template_fill.py` | "用员工数据批量生成offer letter" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 12 | ✅ 数据校验 | `validate.py` | "检查哪些行邮箱格式不对、哪些工号重复了" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 14 | 💅 样式排版 | `style.py` | "给表头加粗加背景色,列宽自适应,加边框" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 15 | 📐 函数公式 | `formula.py` | "在E列加SUM公式汇总B~D列" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 16 | 📊 图表生成 | `chart.py` | "用销售数据生成柱状图+折线图组合" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 17 | 📈 数据透视表 | `pivot.py` | "按部门和月份交叉汇总销售额" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 18 | 🔬 数据分析 | `analyze.py` | "给我这份数据的统计摘要:均值、中位数、分布" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 19 | 🔍 差异对比 | `diff.py` | "对比两版花名册,哪些人新增/离职/信息变更" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 20 | 🖼️ 图片插入 | `image.py` | "在每个员工对应行插入照片" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 21 | 🔒 密码保护 | `protect.py` | "给薪酬表加密码保护"、"解密这个加密的Excel" |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
首次调用任何脚本时,`utils.py` 会自动检测并安装缺失依赖(版本锁定,120s 超时兆底)。安装完成后自动验证导入成功才继续执行。
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Static analysis

Detected: suspicious.obfuscated_code

Potential obfuscated payload detected.

Warn
Code
suspicious.obfuscated_code
Location
scripts/utils.py:123