安全動態(tài)

9 月安卓安全補丁風(fēng)險評估

來源:聚銘網(wǎng)絡(luò)    發(fā)布時間:2016-09-07    瀏覽次數(shù):
 

信息來源:比特網(wǎng)

本月一共有63個安全漏洞,其中Critical 8個,High 35個,Moderate 19個,未定義風(fēng)險等級1個。其中屬于Aosp部分的有33個,驅(qū)動和kernel的有30個。

下面是與8月份的漏洞數(shù)量對比圖:


漏洞分布情況對比圖:

漏洞詳細(xì)情況分析整理

1.Aosp高風(fēng)險安全漏洞

Aosp的漏洞主要集中在mediaserver模塊中,這也是最近安全研究漏洞挖掘的熱點模塊。下圖是這個月aosp漏洞的整理。

A)以下高風(fēng)險安全漏洞在mediaserver組件中,可以被任意app觸發(fā)。

CVE-2016-3862、CVE-2016-2429是兩個Critical級的遠(yuǎn)程代碼執(zhí)行漏洞。分別影響framework.jar、libstagefright_soft_flacenc.so兩個文件。

Mediaserver遠(yuǎn)程代碼執(zhí)行漏洞可能允許攻擊者使用專門制作的媒體文件來攻擊手機(jī),在解析媒體文件時會發(fā)生內(nèi)存崩潰。這個漏洞由于可能在Mediaserver進(jìn)程中發(fā)生遠(yuǎn)程代碼執(zhí)行,所有被評為Critical。Mediaserver進(jìn)程有權(quán)限訪問音頻和視頻流,第三方應(yīng)用程序不能。

CVE-2016-3862是在解析JPG文件時一個惡意構(gòu)造的exif數(shù)據(jù)能夠?qū)е露褩1黄茐?,并?dǎo)致遠(yuǎn)程代碼執(zhí)行。

CVE-2016-2429是對2016.4月的安全補丁的一個更新,在解析一個畸形文件時會產(chǎn)生一個空指針引用。

CVE-2016-3863是一個High級別的遠(yuǎn)程代碼執(zhí)行漏洞影響libstagefright.so文件。

CVE-2016-3863是一個在MediaMuxer的遠(yuǎn)程代碼執(zhí)行漏洞,攻擊者可以通過一個惡意構(gòu)造的文件在一個低權(quán)限進(jìn)程來達(dá)到遠(yuǎn)程代碼執(zhí)行。這個漏洞被評為High是因為必須通過一個已安裝的apk來進(jìn)行攻擊。

CVE-2016-3870、CVE-2016-3871、CVE-2016-3872、CVE-2016-3823是四個High級別的提權(quán)漏洞。分別影響libstagefright_omx.so、libstagefright_soft_mp3dec.so、libOmxVenc.so、libstagefright_soft_vpxdec.so四個so文件。

權(quán)限提升漏洞可以被本地的惡意應(yīng)用用來執(zhí)行惡意代碼進(jìn)行提權(quán),mediaserver的漏洞,可以被用來提權(quán)到system。

CVE-2016-3870是在解析從解碼器取得的數(shù)據(jù)時會導(dǎo)致堆溢出。

CVE-2016-3871是在SoftMP3::onQueueFilled()方法里調(diào)用memset時會傳入一個很大的值,導(dǎo)致堆溢出。補丁是加了一個邊界檢查。

CVE-2016-3872 是SoftVPX::outputBuffers()里調(diào)用了SoftVideoDecoderOMXComponent::copyYV12FrameToOutputBuffer()可以復(fù)制解碼數(shù)據(jù)的范圍超過輸出緩沖區(qū),這可能導(dǎo)致堆溢出。補丁加了檢查,以防止堆溢出。

CVE-2016-3823是在libOmxVenc.so里方法omx_video::empty_this_buffer_proxy方法里會memcpy數(shù)據(jù)到0xdeadbeef,在64位設(shè)備上可以通過一個精心構(gòu)造的binder觸發(fā)。補丁是加了設(shè)置指針為null和在訪問之前檢查指針。

B)以下高風(fēng)險安全漏洞在LibUtils組件中。

CVE-2016-3861是Critical級的遠(yuǎn)程代碼執(zhí)行漏洞,影響libmediaplayerservice.so、libutils.so。

CVE-2016-3861是在utf16_to_utf8和utf16_to_utf8_length的不一致導(dǎo)致堆溢出。補丁修改了正確的長度計算和邊界檢查。

C)以下高風(fēng)險漏洞在libjhead組件中,可以被任意app觸發(fā)。

CVE-2016-3822是High級的遠(yuǎn)程代碼執(zhí)行漏洞,影響libjhead.so。libjhead.so的遠(yuǎn)程代碼執(zhí)行漏洞可以被攻擊者用一個特殊構(gòu)造的文件在當(dāng)前環(huán)境下執(zhí)行任意代碼。

CVE-2016-3822是由于offsetval傳遞給ProcessExifDir會導(dǎo)致一個越界寫。補丁是增加了offsetval數(shù)溢出檢查和邊界寫檢查。

D)其他風(fēng)險級別較低的受影響文件

libstagefright_soft_avcdec.so、libsonivox.so、libui.so、telephony-common.jar、service.jar、debuggerd、SystemUI.apk、SettingsProvider.apk、Settings.apk、telephony-common.jar、adbd、Email.apk、framework.jar、TeleService.apk

2.kernel高風(fēng)險安全漏洞

A)Critical級別

CVE-2014-9529、CVE-2016-4470、CVE-2013-7446、CVE-2016-3134、CVE-2016-3951是內(nèi)核中Critical級別的本地提權(quán)漏洞。

CVE-2014-9529是由于競爭條件引起的,在3.4、3.10、3.18這些版本的內(nèi)核的安全子系統(tǒng)中,允許本地應(yīng)用通過keyctl命令來在內(nèi)核中執(zhí)行代碼,這個功能的代碼中在調(diào)用key_gc_unused_keys函數(shù)回收一個key時內(nèi)存釋放順序有問題,當(dāng)其他進(jìn)/線程同樣對此key進(jìn)行類似操作時就可能導(dǎo)致內(nèi)存破環(huán)或者系統(tǒng)崩潰,合理布置內(nèi)存可用來進(jìn)行本地權(quán)限提升。

CVE-2016-4470是內(nèi)核的安全子系統(tǒng)中的use-after-free漏洞。在內(nèi)核安全子系統(tǒng)模塊的security/keys/key.c中的key_reject_and_link函數(shù)中可能存在key查找時失敗情況,這種情況下再嘗試去釋放之后還需要使用的內(nèi)存,就會導(dǎo)致UAF漏洞。補丁代碼中添加了額外的檢查工作,來避免潛在的UAF風(fēng)險。

CVE-2013-7446 是kernel的networking子系統(tǒng)中的use-after-free漏洞。這個漏洞能夠?qū)е?,?/span>linux內(nèi)核4.4.3之前的本地用戶刻意巧妙的通過調(diào)用epoll_ctl來繞過AF_UNIX socket權(quán)限限制來達(dá)到本地提權(quán)。補丁將unix_dgram_poll函數(shù)中的第二次調(diào)用sock_poll_wait移除來來避免潛在的UAF風(fēng)險。

CVE-2016-3134 是網(wǎng)絡(luò)防火墻子系統(tǒng)中的整型越界漏洞。在防火墻子系統(tǒng)的mark_source_chains函數(shù)中,因為對用戶提供的ipt_entry結(jié)構(gòu)體中的next_offset成員沒有做全面的越界檢查從而可能被本地用戶可以通過IPT_SO_SET_REPLACE setsockopt系統(tǒng)調(diào)用來傳入非法參數(shù)進(jìn)行權(quán)限提升或者導(dǎo)致內(nèi)存破壞使得拒絕服務(wù)。補丁當(dāng)然是添加對用戶空間傳入的數(shù)據(jù)做全面的邊界檢查。

CVE-2016-3951 是USB驅(qū)動中的double free漏洞。因為USB是支持熱插拔的,當(dāng)我們插入一個USB設(shè)備后執(zhí)行cdc_ncm_bind進(jìn)行bind時會調(diào)用usbnet_link_change,usbnet_link_change中會進(jìn)而調(diào)用shedule_work。但是在bind失敗后我們應(yīng)該避免后面的usbnet_link_change調(diào)用,否則的話就會導(dǎo)致在結(jié)束shedule work時導(dǎo)致double free漏洞。惡意攻擊者可以通過插入無效擁有descriptor的USB device來觸發(fā)bind失敗情況,進(jìn)而導(dǎo)致double free。補定將cdc_ncm_bind中的usbnet_link_change調(diào)用刪除,進(jìn)行延期調(diào)用來避免此漏洞。被定義為Critical是因為一旦漏洞被觸發(fā)可能導(dǎo)致設(shè)備持久性crash,只有通過刷機(jī)才能恢復(fù)。

B)High級別

CVE-2016-2053、CVE-2016-3864、CVE-2016-3858、CVE-2014-4805、CVE-2016-1583是內(nèi)核中High級的提權(quán)漏洞。

CVE-2016-2053 是內(nèi)核ASN.1(Abstract Syntax Notation One) 解碼器中的內(nèi)存破壞漏洞。在asn1_ber_decoder函數(shù)中,攻擊者可以通過一個缺少public key的ASN1 BER 文件來導(dǎo)致public_key_verify_signatureh函數(shù)運行出錯,進(jìn)而破壞內(nèi)存。

CVE-2016-3864 是內(nèi)核中的高通音頻接口層的buffer溢出漏洞。補丁添加了字符串參數(shù)長度的檢查。

CVE-2016-3858 是內(nèi)核中高通子系統(tǒng)驅(qū)動中的數(shù)組越界漏洞。在firmware_name_store()函數(shù)中,如果buf變量中包含的字符串超過subsys->desc->fw_name的大小就會導(dǎo)致數(shù)組越界,本地惡意應(yīng)用可以通過有一定權(quán)限的進(jìn)程利用此漏洞來進(jìn)一步提升權(quán)限。

CVE-2014-4805 是內(nèi)核networking驅(qū)動中的use-after-free漏洞。在內(nèi)核的networking驅(qū)動中,由于一些像ppp_async和ppp_synctty等類型的channels允許在另一個namespace中擁有他們的userspace controller,因此這些channels不能依靠namespace來排除被移除的netns。因此通過移除一個和ppp_async和ppp_synctty類型相關(guān)的network namespace時可能存在UAF風(fēng)險,可被本地用戶用來提權(quán)。

CVE-2016-1583 是內(nèi)核eCryptfs(Enterprise Cryptographic Filesystem,企業(yè)加密文件系統(tǒng))中的棧內(nèi)存破壞漏洞。本地攻擊者可以通過精心構(gòu)造相關(guān)mmap調(diào)用向量來導(dǎo)致遞歸的缺頁異常處理,從而使造成棧內(nèi)存破壞或者系統(tǒng)拒絕服務(wù)。

3. 高通和MTK等其他第三方廠商漏洞

A)高通驅(qū)動中存在權(quán)限提升漏洞

CVE-2016-3866、CVE-2016-3867、CVE-2016-3868、CVE-2016-3869、CVE-2016-1583、CVE-2016-3874、CVE-2014-4655、CVE-2016-2471是高通組件驅(qū)動中High級別漏洞。

CVE-2016-3866是高通聲卡驅(qū)動中的一個緩沖區(qū)溢出漏洞。當(dāng)編解碼器在對通過msm_compr_ioctl_shared函數(shù)接受到的參數(shù)進(jìn)行解析時,沒有對數(shù)據(jù)包長度進(jìn)行檢查導(dǎo)致存在緩沖區(qū)越界風(fēng)險。補丁中添加了對數(shù)據(jù)包長度進(jìn)行預(yù)置操作,來避免潛在的緩沖區(qū)溢出漏洞發(fā)生。

CVE-2016-3867 是IPA(IP Packet Accelerator)這個可編程硬件協(xié)處理器的驅(qū)動中的一個內(nèi)存破壞漏洞。從補丁代碼來看,添加了一些對用戶空間傳遞進(jìn)來的參數(shù)的檢查來防止對特殊資源的競爭情況。在未修補的設(shè)備中,本地攻擊者可以利用此漏洞提升權(quán)限。

CVE-2016-3868 是高通電源驅(qū)動中的一個棧溢出漏洞。因為split_ptable_arg函數(shù)中沒有傳進(jìn)來的參數(shù)進(jìn)行邊界檢查,從而存在潛在棧溢出漏洞風(fēng)險。補丁中添加了額外的參數(shù)檢查代碼,來設(shè)定參數(shù)的最大值避免棧溢出風(fēng)險。

CVE-2016-3869 是博通Wi-Fi驅(qū)動中的內(nèi)存破壞漏洞,由于對wls_parse_batching_cmd函數(shù)中的batch_params.nchan參數(shù)沒有做邊界檢查導(dǎo)致可能造成內(nèi)存破壞風(fēng)險。

CVE-2016-3874是高通Wi-Fi驅(qū)動中的內(nèi)存破壞漏洞。由于__iw_set_var_ints_getnone函數(shù)中沒有對參數(shù)apps_args[1]的邊界做檢查,當(dāng)這個參數(shù)為負(fù)數(shù)的時候可能觸發(fā)內(nèi)核內(nèi)存破壞漏洞。補丁增加了額外的邊界檢查操作。

CVE-2014-4655是內(nèi)核聲卡子系統(tǒng)(只影響高通設(shè)備)的ALSA(Advanced Linux Sound Architecture)中的漏洞。這個漏洞其實包含兩處風(fēng)險:一方面是由于代碼未對ioctl的調(diào)用是否是通過用戶觸發(fā)的以及這和control是否是在一個將被移除的進(jìn)程中觸發(fā)的進(jìn)行判斷,從而存在use-after-free風(fēng)險;另一方面是control被replace的時候未對user_ctl_count的值進(jìn)行檢查,因此在用戶控件通過足夠多次SNDRV_CTL_IOCTL_ELEM_REPLACE ioctl調(diào)用可以導(dǎo)致user_ctl_count溢出。補丁對這兩處問題進(jìn)行了合理的修補。

CVE-2016-2471是高通Wi-Fi驅(qū)動中的內(nèi)存破壞漏洞。在對接受到的essid長度沒有做完整長度檢查的情況下就直接進(jìn)行buffer拷貝,導(dǎo)致的內(nèi)存破壞。有別本地攻擊者利用提權(quán)的風(fēng)險。補丁添加完整的長度檢查。

B) MTK驅(qū)動中的漏洞

本月無MTK驅(qū)動中的漏洞。

C) 其他第三方廠商中的漏洞

\

CVE-2016-3859是Synaptics(新思國際)觸摸屏驅(qū)動中的一個棧溢出漏洞。由于rmidev_write函數(shù)中,對來自用戶控件的棧數(shù)組大小沒有做限制,導(dǎo)致可能存在棧溢出漏洞。補丁對此進(jìn)行了修改,將這個本來在棧上的數(shù)組修改為在堆中申請內(nèi)存來防止棧溢出漏洞的發(fā)生。

CVE-2016-2446 是NVIDIA video驅(qū)動中的數(shù)組越界漏洞。補丁對原始代碼增加了更細(xì)致的邊界檢查。

CVE-2016-3873 是NVIDIA kernel中的內(nèi)核堆空間任意寫漏洞。由于debugfs文件入口沒有對來自用戶空間的輸入做很好的校驗導(dǎo)致內(nèi)核空間任意寫漏洞。具有一定權(quán)限的本地惡意應(yīng)用可以利用此漏洞提升權(quán)限。

4. 受影響進(jìn)程列表

 

 
 

上一篇:2016年09月06日 聚銘安全速遞

下一篇:Mozilla網(wǎng)站安全分析工具Observatory已發(fā)布