首頁 -> 安全研究

安全研究

安全公告
綠盟科技安全公告(SA2001-05)

NSFOCUS安全小組([email protected])
http://www.nsfocus.com

Solaris Xlock Heap緩沖區溢出漏洞

發布日期:2001-08-10

CVE ID:CVE-2001-0652
BUGTRAQ ID:3160

受影響的軟件及系統:
====================
- Sun Solaris 2.6 (SPARC/x86)
- Sun Solaris 7   (SPARC/x86)
- Sun Solaris 8   (SPARC/x86)

綜述:
======
NSFOCUS安全小組發現Solaris系統所帶的xlock程序在處理某些環境變量時存在Heap緩沖區溢出漏洞,攻擊者可能獲取本地root權限。

分析:
======
xlock是Solaris OpenView所帶的一個工具,用來鎖定屏幕。它缺省設置了suid root屬性,由于在處理某些環境變量時沒有進行有效的邊界檢查,攻擊者可以覆蓋heap區的動態內存邊界,小心地構造溢出數據攻擊者可以以root權限執行任意代碼。

問題出在兩個環境變量上:"XFILESEARCHPATH"和"XUSERFILESEARCHPATH". xlock調用malloc()為其分配1024字節的內存,并將環境變量的內容保存在這些動態內存中。然而,在進行拷貝的時候,xlock沒有檢查環境變量的長度,如果將這兩個環境變量的內容設置為超過1024字節長的字符串,就可能發生heap溢出。相鄰的動態內存塊邊界數據結構會被覆蓋,在下一次調用malloc()時,將會導致段訪問錯誤。如果小心地構造溢出數據,就可能利用malloc()/free()實現的一些特性來重寫任意內存地址,例如保存的返回地址、函數指針等等。

成功地利用這個漏洞,攻擊者可以獲取本地root權限。

測試方法:
==========
bash-2.03$ uname -a
SunOS sun88 5.8 Generic sun4u sparc SUNW,Ultra-5_10
bash-2.03$ cp /usr/openwin/bin/xlock /tmp/xlock
bash-2.03$ export XFILESEARCHPATH=`perl -e 'print "A"x1028'`
bash-2.03$ /tmp/xlock
Segmentation Fault
bash-2.03$ truss -u libc:malloc,free /tmp/xlock
<...snip...>
<- libc:malloc() = 0x1135d0
-> libc:malloc(0x400, 0xffbefa8d, 0xffffffff, 0x1b648)
<- libc:malloc() = 0x1139d0
open("AAAAAAA...AAAAAAAAAAAAAAA", O_RDONLY) Err#78 ENAMETOOLONG
-> libc:free(0x1139d0, 0x0, 0xff31c000, 0x1b648)
<- libc:free() = 0
-> libc:malloc(0x400, 0x12, 0x0, 0x10ed49)
<- libc:malloc() = 0x1139d0
open("/export/home/test/XLock", O_RDONLY)         Err#2 ENOENT
-> libc:free(0x1139d0, 0x0, 0xff31c000, 0x7efefeff)
<- libc:free() = 0
-> libc:malloc(0x3, 0x3073b, 0xffffffff, 0x3a300000)
<- libc:malloc() = 0x1135e0
    Incurred fault #6, FLTBOUNDS  %pc = 0xFF0C0F4C
      siginfo: SIGSEGV SEGV_MAPERR addr=0x41527F18
    Received signal #11, SIGSEGV [default]
      siginfo: SIGSEGV SEGV_MAPERR addr=0x41527F18
        *** process killed ***

我們也提供了兩個演示程序:
http://www.6047803.live/proof/sol_sparc_xlockex.c
http://www.6047803.live/proof/sol_x86_xlockex.c

解決方法:
==========
暫時去掉xlock的suid root屬性:
# chmod a-s /usr/openwin/bin/xlock

廠商狀態:
==========
2001.6.11    我們將此漏洞通知Sun公司
2001.6.14    Sun報告說已經重現了這個漏洞,并著手開發補丁
2001.8.8        Sun通知我們補丁已經開發完畢,將于本月底正式發布。
2001.8.9        Sun提供了要發布的補丁ID

Sun準備為此漏洞發布的補?。?br />
                SPARC           x86
                ---------       ---------
  Solaris 8     108652-38       108653-33
  Solaris 7     108376-30       108377-26
  Solaris 2.6   105633-60       106248-45


您可以在下述網址獲得Sun的所有安全補丁

http://sunsolve.sun.com/securitypatch

聲 明
==========

本安全公告僅用來描述可能存在的安全問題,綠盟科技不為此安全公告提供任何保證或承諾。由于傳播、利用此安全公告所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,綠盟科技以及安全公告作者不為此承擔任何責任。綠盟科技擁有對此安全公告的修改和解釋權。如欲轉載或傳播此安全公告,必須保證此安全公告的完整性,包括版權聲明等全部內容。未經綠盟科技允許,不得任意修改或者增減此安全公告內容,不得以任何方式將其用于商業目的。

關于綠盟科技
============

綠盟科技(NSFOCUS Co., Ltd.)是中國網絡安全領域的領導企業,致力于網絡和系統安全問題的研究、高端網絡安全產品的研發、銷售與網絡安全服務,在入侵檢測/保護、遠程評估、 DDoS攻擊防護等方面提供具有國際競爭能力的先進產品,是國內最具安全服務經驗的專業公司。有關綠盟科技的詳情請參見: http://www.nsfocus.com

© 2020 綠盟科技
彩票网站哪个最正规