Windows中Rust標準庫發現“BatBadBut”漏洞

banq發表於2024-04-11


在 Rust 標準庫中發現了一個名為 "BatBadBut "的嚴重安全漏洞,影響 Windows 上 1.77.2 之前的所有版本。該漏洞被認定為 CVE-2024-24576,CVSS 得分為 10.0,允許攻擊者在使用 Command API 呼叫批處理檔案時繞過轉義機制執行任意 shell 命令。

該問題源於 cmd.exe 的複雜解析規則:

  • cmd.exe 是 Windows 上的命令提示符,在執行批處理檔案時會隱式生成。
  • Rust 標準庫未能正確轉義 cmd.exe 的命令引數,從而導致潛在的命令注入。

Rust 安全團隊承認,標準庫中現有的轉義邏輯不夠充分,使得惡意引數有可能繞過轉義,導致任意 shell 執行。如果在 Windows 上呼叫批處理檔案時傳遞了不受信任的引數,那麼 "BatBadBut "漏洞的嚴重性將被視為危急。

需要注意的是,該漏洞僅影響在 Windows 上執行的 Rust 程式碼,這些程式碼使用不受信任的引數執行批處理檔案。 Windows 上的其他平臺或使用不受影響。

為了解決“BatBadBut”漏洞,Rust 團隊釋出了版本 1.77.2,其中包含該問題的修復程式。

強烈建議在 Windows 上使用 Rust 的開發人員儘快更新至 1.77.2 版,以降低潛在命令注入攻擊的風險。在將不受信任的輸入作為引數傳遞給批處理檔案之前,確保對其進行適當驗證和消毒至關重要。

相關文章