Back to skill

Security audit

故障树分析技能

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its FTA purpose, but crafted input can become executable content in generated HTML reports and malformed trees can crash the calculator.

Review before installing if you process FTA files from other people. Use only trusted input, keep outputs in a controlled project folder, and avoid opening or sharing generated HTML reports from untrusted data until the report generator escapes all text fields. For automated or service use, add shared DAG validation and resource limits before running calculations at scale.

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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/fta_report.py:42
Finding

Stored HTML and JavaScript Injection in Generated Reports

Content
View full analysis
故障树分析报告 - {system_name} ``` Additional vulnerable output locations include event names, cut-set names, and importance-analysis names: ```python {''.join(f''' {{i}} {{row['name']}} {{row['probability']:.6f}} {{row['type']}} ''' for i, row in enumerate(node_probs, 1))} ``` ```python {''.join(f'''
{len(cut['events'])}阶
{" + ".join(e['name'] for e in cut['events'])}
''' for cut in min_cuts[:10])} ``` ```python {''.join(f''' {{i}} {{item[1]}} - - {{item[2]:.6f}} ''' for i, item in enumerate(importance.get('critical_importance', [])[:10], 1))} ``` ### Technical Analysis The report generator treats fields obtained from JSON or YAML documents as trusted HTML. Values such as the system ...[truncated 1992 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/fta_calculator.py:67
Finding

Cyclic Fault-Tree Input Causes Uncontrolled Recursion and Denial of Service

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (13)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个功能较完整的FTA分析技能,但给出的代码块只是一个I/O工具脚本,主要用途是文件加载、格式转换、标准化导出和基础数据结构验证。它没有执行故障树分析本身,也没有进行可靠性/安全性计算、可视化或报告生成。虽然“数据导入导出”与声明中的一部分相符,但当前代码的实际范围远窄于声明的核心能力,因此描述不能准确代表该代码块的实际行为。没有发现明显的额外越权能力或不一致资源访问;问题主要在于声明显著夸大了实现范围。

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.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
86% confidence
Finding

The skill instructs the agent to read and write local files and generate outputs, but it declares no explicit tool scope or permissions boundaries. This creates a least-privilege failure mode where an agent may access broader filesystem locations than intended when handling user-supplied paths or generated artifacts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger condition is broad enough that the skill may be invoked for vaguely related reliability or safety-analysis requests without sufficient user intent verification. In a skill that performs file import/export and report generation, over-broad activation can cause unintended processing of user data or unnecessary file operations in the wrong context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code file contains natural-language strings that define the skill's purpose entirely in Chinese, and the same single-language constraint appears again in command-line help text. Under the policy, forcing a specific language without user opt-in or a documented justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The argparse description/help strings and related user-facing messages are presented only in Chinese, which requires users to interact in a specific language. The file does not offer a language choice or justify a locale-specific limitation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This code file contains user-facing natural-language descriptions exclusively in Chinese, beginning with the module docstring. The policy requires avoiding forced language or locale constraints unless the skill offers a language choice or clearly documents that it is intentionally region- or locale-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The argparse description, help strings, validation errors, and success/error outputs are all hard-coded in Chinese. Because these are user-facing strings and the file does not document a justified locale restriction or provide an option to select another language, this is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file contains user-facing instructions and examples exclusively in Chinese, but it does not state that the skill is Chinese-only, region-specific, or that users may choose another language. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code sets the HTML document language to "zh-CN" and later formats timestamps with the same locale, making the skill output Chinese-only by default. Under the policy, forcing a specific language or locale without user opt-in is a natural-language policy violation unless clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The JavaScript call toLocaleString('zh-CN') enforces Chinese locale formatting for all users. This is a language/locale policy issue because the skill does not provide a language choice or indicate that the tool is intentionally limited to a Chinese-language environment.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The module docstring is entirely in Chinese, and the rest of the script uses Chinese-only user-facing messages and CLI help text. For a general-purpose visualization tool, this imposes a locale choice on users without opt-in or explanation, which matches the language/locale policy violation category.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script prints installation and error guidance in Chinese and later defines argument descriptions and success/error messages in Chinese only. Because the file does not offer a language selection mechanism or justify a China-specific scope, this is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.