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

MySQL mysqlbug 腳本不安全臨時文件漏洞分析

     編輯:MySQL 資料庫相關知識

漏洞概述

MySQL AB 多個版本的錯誤報告工具 mysqlbug 存在不安全臨時文件創建漏洞。本地攻擊者可利用此缺陷破壞系統任意文件,導致拒絕服務攻擊。受影響版本涵蓋 MySQL 3.20.x 至 4.1.0-alpha,以及多個 Linux 發行版的默認安裝包。

漏洞成因

mysqlbug 是一個 Shell 腳本,用於收集錯誤報告並啟動文本編輯器供用戶填寫。問題出在腳本處理用戶未修改模板直接退出編輯器的邏輯上:

if cmp -s $TEMP $TEMP.x
then
    echo "File not changed, no bug report submitted."
    cp $TEMP /tmp/failed-mysql-bugreport
    echo "The raw bug report exists in /tmp/failed-MySQL-bugreport"
    exit 1
fi

腳本使用靜態文件名 /tmp/failed-mysql-bugreport 保存未修改的報告。攻擊者可預先建立同名符號鏈接指向關鍵系統文件(如 /etc/passwd),當其他用戶運行 mysqlbug 並直接退出時,目標文件將被覆蓋破壞。

影響範圍

  • MySQL 3.20.32a、3.22.x、3.23.x 全系列、4.0.x 全系列、4.1.0-alpha
  • Debian Linux 3.0、Mandrake Linux 8.1/8.2/9.0、RedHat Linux 7.2/7.3、SuSE Linux 8.1/8.2 等發行版預編譯包

修補建議

官方已發布修復版本,請從 MySQL 官網下載最新源碼重新編譯安裝:
https://www.mysql.com/doc/en/Installing_source_tree.html

臨時緩解措施:限制 mysqlbug 腳本執行權限,或刪除該腳本(若不需要錯誤上報功能)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved