Back to skill

Security audit

Sum2Slides Lite

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it claims, but its upload, network-check, credential-storage, and WPS automation behavior need review before use.

Install only if you are comfortable reviewing the code and running it in local PowerPoint/python-pptx mode. Avoid WPS AppleScript mode for untrusted conversation text, do not run the permission checker if you need zero network traffic, and do not provide Feishu credentials unless you intentionally want uploads to your tenant. Prefer temporary environment variables or a credential manager over saving secrets in config files or shell startup files.

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

T09 · Insecure Skill Coding Practices

Error
Location
core/wps_generator.py:33
Finding

AppleScript Injection Through Conversation-Derived Slide Content

Content
View full analysis
str: script_file = os.path.join( self.applescript_dir, f"script_{len(self.script_files)}.applescript" ) with open(script_file, 'w', encoding='utf-8') as f: f.write(script_content) self.script_files.append(script_file) return script_file def _execute_apple_script(self, script_file: str) -> bool: try: result = subprocess.run( ['osascript', script_file], capture_output=True, text=True, timeout=30 ) if result.returncode == 0: return True else: print(f"AppleScript执行失败: {result.stderr}") return False ``` Conversation-derived fields are then inserted directly into the executable script: ```python script = f''' tell application "WPS Office" activate delay 1 -- 创建新演示文稿 make new presentation delay 1 -- 设置标题 tell active presentation tell slide 1 set title of shape 1 to "{structure.title}" -- 设置标题格式 set font of text range of shape 1 to "微软雅黑" set size of font of text range of shape 1 to 44 set color of font of text range of shape 1 to {{0, 122, 255}} end tell -- 添加副标题 if "{structure.subtitle}" is not "" then tell slide 1 set subtitle_shape to make new shape at end with properties {{type: text box}} set content of subtitle_shape to "{structure.subtitle}" end tell end if end tell end tell ''' script_file = self._create_apple_script(script) success = self._execute_apple_script(script_file) ``` The same unsafe interpolation pattern is used for slide titl ...[truncated 2225 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
config/settings.py:58
Finding

Platform Credentials Can Be Persisted in Plaintext Configuration

Content
View full analysis
None: """ 保存配置到文件 """ config_data = { 'global': asdict(self.global_settings), 'platform': asdict(self.platform_settings), 'generator': asdict(self.generator_settings) } # 转换枚举值为字符串 for section in config_data.values(): for key, value in section.items(): if isinstance(value, Enum): section[key] = value.value try: os.makedirs(os.path.dirname(self.config_file), exist_ok=True) with open(self.config_file, 'w', encoding='utf-8') as f: json.dump(config_data, f, ensure_ascii=False, indent=2) print(f"✅ 配置已保存到文件: {self.config_file}") except Exception as e: print(f"❌ 保存配置文件失败: {e}") ``` Platform updates automatically invoke this persistence operation: ```python def update_platform_config(self, platform: str, config: Dict[str, Any]) -> None: if platform == "feishu": for key, value in config.items(): if hasattr(self.platform_settings, f"feishu_{key}"): setattr(self.platform_settings, f"feishu_{key}", value) elif hasattr(self.platform_settings, key): setattr(self.platform_settings, key, value) elif platform == "wechat": for key, value in config.items(): if hasattr(self.platform_settings, f"wechat_{key}"): setattr(self.platform_settings, f"wechat_{key}", value) elif ...[truncated 2079 chars]
Remediation
View remediation

other

Note
Location
quick_permission_check.py:33
Finding

Local-Mode Permission Check Performs an Unconditional External Network Connection

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
sum2slides.py:155
Finding

Main Workflow Does Not Reliably Enforce Explicit Opt-In for Feishu Uploads

Content
View full analysis
Dict[str, Any]: processor = Sum2Slides() return processor.summarize_to_ppt( conversation_text=conversation_text, title=title, software=software, platform=platform, template=template ) ``` ### Technical Analysis The documented configuration states that Feishu is disabled by default, but the runtime workflow does not read or enforce the `feishu.enabled: false` value from `config/config.yaml`. Instead, the main class has `default_platform = "feishu"` and uses: ...[truncated 2161 chars]
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (128)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL.md (reported line 127)May include surrounding context.

安全卸载:

bash
# 1. 删除安装目录
rm -rf ~/.openclaw/skills/sum2slides-lite/

# 2. 清理环境变量 (如设置)
# 从配置文件中移除相关行

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL_SPECIFICATION.md (reported line 228)May include surrounding context.

安全卸载:

bash
# 1. 删除安装目录
rm -rf ~/.openclaw/skills/sum2slides-lite/

# 2. 清理环境变量 (如设置)
# 从配置文件中移除相关行

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · docs/USER_GUIDE.md (reported line 364)May include surrounding context.

安全卸载:

bash
# 1. 删除安装目录
rm -rf ~/.openclaw/skills/sum2slides-lite/

# 2. 清理环境变量 (如设置)
# 从配置文件中移除相关行

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL.md (reported line 127)May include surrounding context.

安全卸载:

bash
# 1. 删除安装目录
rm -rf ~/.openclaw/skills/sum2slides-lite/

# 2. 清理环境变量 (如设置)
# 从配置文件中移除相关行

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL_SPECIFICATION.md (reported line 228)May include surrounding context.

安全卸载:

bash
# 1. 删除安装目录
rm -rf ~/.openclaw/skills/sum2slides-lite/

# 2. 清理环境变量 (如设置)
# 从配置文件中移除相关行

YARA rule 'backdoor_persistence': Backdoor persistence with malicious payloads (shell commands, SSH key injection, hidden root users) [malware]

High
Category
YARA Match
Confidence
75% confidence
Finding

YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Content

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

es

text

#### **环境变量配置声明:**
```markdown
## 环境变量配置方法

### 方法A: 不使用环境变量 (推荐)

不设置任何环境变量 功能: 本地PPT生成,无飞书上传

text

### 方法B: 使用环境变量 (可选)
```bash
# 临时设置
export FEISHU_APP_ID="your_app_id"
export FEISHU_APP_SECRET="your_app_secret"

# 永久设置 (添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export FEISHU_APP_ID="your_app_id"' >> ~/.bashrc
echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

方法C: 使用 .env 文件 (可选)

bash
cp .env.example .env
# 编辑 .env 文件 (可选)
text

### **3. 安装步骤规范声明**

#### **步骤1: 下载**
```bash
# 从官方发布渠道下载
# 文件: sum2slides-lite-v1.0.3.zip

步骤2: 验证

bash
# 验证文件完整性 (建议)
# 检查文件大小: 约 92KB
# 检查文件类型: ZIP压缩包

步骤3: 解压

bash
# 解压到用户目录
unzip sum2slides-lite-v1.0.3.zip

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · CHANGELOG.md (reported line 213)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · CHANGELOG.md (reported line 236)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · credentials_management.md (reported line 82)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · credentials_management.md (reported line 206)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · credentials_management.md (reported line 207)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/PERMISSIONS.md (reported line 97)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/SECURITY_GUIDE.md (reported line 85)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/SECURITY_GUIDE.md (reported line 93)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/USER_GUIDE.md (reported line 358)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · install_mechanism.md (reported line 79)May include surrounding context.

echo 'export FEISHU_APP_SECRET="your_app_secret"' >> ~/.bashrc

text

### 方法C: 使用 .env 文件 (可选)
```bash
cp .env.example .env
# 编辑 .env 文件 (可选)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

方法C: 使用 .env 文件 (可选)

bash
cp .env.example .env
# 编辑 .env 文件 (可选)
text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/PERMISSIONS.md (reported line 157)May include surrounding context.

方法C: 使用 .env 文件 (可选)

bash
cp .env.example .env
# 编辑 .env 文件 (可选)
text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/SECURITY_GUIDE.md (reported line 82)May include surrounding context.

方法C: 使用 .env 文件 (可选)

bash
cp .env.example .env
# 编辑 .env 文件 (可选)
text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/USER_GUIDE.md (reported line 92)May include surrounding context.

方法C: 使用 .env 文件 (可选)

bash
cp .env.example .env
# 编辑 .env 文件 (可选)
text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · install_mechanism.md (reported line 78)May include surrounding context.

方法C: 使用 .env 文件 (可选)

bash
cp .env.example .env
# 编辑 .env 文件 (可选)
text

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTRUCTION_SCOPE_VISUAL.md (reported line 206)May include surrounding context.

md
# 系统修改 (禁止)
def dangerous_system_modification():
    os.system("rm -rf /")  # 不存在
    
# 数据收集 (禁止)  
def collect_user_data():

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTRUCTION_SCOPE_VISUAL.md (reported line 206)May include surrounding context.

md
# 系统修改 (禁止)
def dangerous_system_modification():
    os.system("rm -rf /")  # 不存在
    
# 数据收集 (禁止)  
def collect_user_data():

Static analysis

Detected: suspicious.destructive_delete_command, suspicious.exposed_secret_literal

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
docs/USER_GUIDE.md:364

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
INSTALL_SPECIFICATION.md:228

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
INSTALL.md:127

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
credentials_management.md:67