## VirtualAssistant Core 曝安全漏洞：XDoToolKeyboardService 存在 Shell 注入风险
VirtualAssistant Core 项目的一个关键键盘服务模块被发现存在潜在的安全漏洞。在 `XDoToolKeyboardService.cs` 文件中，代码直接将 `pasteShortcut` 字符串变量插值到 `bash -c` 命令中，构成了一个典型的 Shell 注入攻击面。虽然当前该变量的值来自硬编码的快捷键（如 `ctrl+v` 或 `shift+insert`），但代码模式本身是危险的。任何未来的代码重构，一旦允许用户控制的数据流入此变量，将立即打开一个可利用的远程代码执行通道。

具体风险点位于 `src/VirtualAssistant.Core/Keyboard/XDoToolKeyboardService.cs` 的第 84 行，命令参数构建为 `Arguments = $"-c \"echo 'key {pasteShortcut}' | dotool\""`。同样的危险模式在 `FastPasteAsync`（约第 305 行）和 `PasteFromClipboardAsync`（约第 388 行）中被重复使用。目前，代码对 `pasteShortcut` 变量没有任何白名单验证或输入清理机制，完全依赖其当前来源的安全性。

该漏洞的修复要求明确：必须用 `ProcessStartInfo.ArgumentList`（位置参数数组）结合标准输入管道的方式，替换掉当前不安全的 `bash -c` 字符串插值。替代方案是，在使用前将 `pasteShortcut` 与严格的白名单 `["ctrl+v", "shift+insert"]` 进行验证。此修复需要应用到所有三个粘贴方法中，并应补充相应的单元测试以证明漏洞已被封堵。这一发现凸显了在自动化工具的核心组件中，即使看似无害的硬编码值，若采用不安全的代码模式，也会为未来引入严重安全债务。
---
- **Source**: GitHub Issues
- **Sector**: The Lab
- **Tags**: 代码安全, Shell注入, C#, 漏洞披露, GitHub
- **Credibility**: unverified
- **Published**: 2026-04-18 20:22:33
- **ID**: 70794
- **URL**: https://whisperx.ai/en/intel/70794