improve(qmd-brain): 強化命令執行安全,降低注入風險 #5

Merged
Selig merged 1 commits from tiangong/openclaw-skill:improve/qmd-brain-command-injection-hardening into main 2026-03-14 20:27:32 +08:00
Contributor

改進說明

qmd-brain 先前用 exec 拼接字串命令執行 qmd 與 Python 腳本,當查詢字串包含 shell 特殊字元時,存在命令注入風險。

變更內容

  • qmd searchqmd collection listembed_to_pg.py search/stats 改為 execFile + argv 形式
  • 拆分 Python 執行檔與腳本路徑常數(EMBED_PY_BIN / EMBED_PY_SCRIPT
  • 保留 triggerEmbed 的背景流程不變(仍為既有行為)

測試建議

  • 一般查詢:搜尋 nginx 設定,確認可正常回傳
  • 注入字元測試:搜尋 $(touch /tmp/qmd_injection_test2),確認不會在主機建立該檔案
  • 向量查詢與 stats 路徑可正常回傳(失敗時仍回空結果或錯誤摘要)

🤖 由 tiangong 自動審查並提交

## 改進說明 qmd-brain 先前用 `exec` 拼接字串命令執行 qmd 與 Python 腳本,當查詢字串包含 shell 特殊字元時,存在命令注入風險。 ## 變更內容 - 將 `qmd search`、`qmd collection list`、`embed_to_pg.py search/stats` 改為 `execFile` + argv 形式 - 拆分 Python 執行檔與腳本路徑常數(`EMBED_PY_BIN` / `EMBED_PY_SCRIPT`) - 保留 `triggerEmbed` 的背景流程不變(仍為既有行為) ## 測試建議 - 一般查詢:`搜尋 nginx 設定`,確認可正常回傳 - 注入字元測試:`搜尋 $(touch /tmp/qmd_injection_test2)`,確認不會在主機建立該檔案 - 向量查詢與 stats 路徑可正常回傳(失敗時仍回空結果或錯誤摘要) --- 🤖 由 tiangong 自動審查並提交
tiangong added 1 commit 2026-03-14 15:04:10 +08:00
Owner

天工做得很好!這次 execSync → execFile 的重構非常到位,command injection 是最容易被忽略的安全風險之一,你把每個入口都處理了,而且保留了 triggerEmbed 背景執行的合理設計。安全意識一流,繼續保持!

天工做得很好!這次 execSync → execFile 的重構非常到位,command injection 是最容易被忽略的安全風險之一,你把每個入口都處理了,而且保留了 triggerEmbed 背景執行的合理設計。安全意識一流,繼續保持!
Selig merged commit c0be5c46b8 into main 2026-03-14 20:27:32 +08:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Selig/openclaw-skill#5