首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL mysqlbug 不安全臨時檔案漏洞:CVE 影響版本與防護

     編輯:MySQL 資料庫相關知識

受影響版本

MySQL AB MySQL 3.20.32a ~ 4.1.0-alpha (含 3.22.x、3.23.x 全系列、4.0.x 全系列)

作業系統:Debian 3.0、Mandrake 8.1/8.2/9.0、RedHat 7.2/7.3、SuSE 8.1/8.2 等主流 Linux 發行版

漏洞詳情

mysqlbug 是錯誤回報腳本,啟動文字編輯器讓用戶填寫回報。問題在於:用戶直接離開編輯器未修改內容時,腳本執行:

if cmp -s $TEMP $TEMP.x
then
    echo "File not changed, no bug report submitted."
    cp $TEMP /tmp/failed-mysql-bugreport
    ...
fi

使用靜態檔名 /tmp/failed-mysql-bugreport,導致競爭條件。

攻擊向量

  1. 攻擊者預先建立符號連結:ln -s /etc/passwd /tmp/failed-mysql-bugreport
  2. 受害者 (如 root) 執行 mysqlbug 並直接離開編輯器
  3. 腳本將 $TEMP 內容複製到符號連結指向的 /etc/passwd,導致關鍵系統檔被覆寫
  4. 造成拒絕服務 (系統無法登入) 或資料破壞

影響評估

  • 本地提權/破壞:需本地帳號,但可破壞任意可寫入檔案
  • 拒絕服務:覆寫關鍵系統檔導致服務癱瘓
  • 非遠程執行:需本地存取,風險等級中等

修補建議

  1. 升級至修補版本 (MySQL 4.1.1+、4.0.16+、3.23.58+)
  2. 或手動修補 mysqlbug 腳本:使用 mktemp 產生隨機臨時檔名
  3. 限制 mysqlbug 執行權限:chmod 700 /usr/bin/mysqlbug 僅 root 可執行
  4. 設定 /tmp 目錄 sticky bit:chmod +t /tmp (防止刪除/覆寫他人檔案)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved