安全動(dòng)態(tài)

9 月安卓安全補(bǔ)丁風(fēng)險(xiǎn)評(píng)估

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

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

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

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


漏洞分布情況對(duì)比圖:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)險(xiǎn)安全漏洞

A)Critical級(jí)別

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

CVE-2014-9529是由于競(jìng)爭(zhēng)條件引起的,在3.4、3.10、3.18這些版本的內(nèi)核的安全子系統(tǒng)中,允許本地應(yīng)用通過(guò)keyctl命令來(lái)在內(nèi)核中執(zhí)行代碼,這個(gè)功能的代碼中在調(diào)用key_gc_unused_keys函數(shù)回收一個(gè)key時(shí)內(nèi)存釋放順序有問(wèn)題,當(dāng)其他進(jìn)/線程同樣對(duì)此key進(jìn)行類似操作時(shí)就可能導(dǎo)致內(nèi)存破環(huán)或者系統(tǒng)崩潰,合理布置內(nèi)存可用來(lá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查找時(shí)失敗情況,這種情況下再嘗試去釋放之后還需要使用的內(nèi)存,就會(huì)導(dǎo)致UAF漏洞。補(bǔ)丁代碼中添加了額外的檢查工作,來(lái)避免潛在的UAF風(fēng)險(xiǎn)。

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

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

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

B)High級(jí)別

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

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

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

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

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

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

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

A)高通驅(qū)動(dòng)中存在權(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ū)動(dòng)中High級(jí)別漏洞。

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

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

CVE-2016-3868 是高通電源驅(qū)動(dòng)中的一個(gè)棧溢出漏洞。因?yàn)閟plit_ptable_arg函數(shù)中沒(méi)有傳進(jìn)來(lái)的參數(shù)進(jìn)行邊界檢查,從而存在潛在棧溢出漏洞風(fēng)險(xiǎn)。補(bǔ)丁中添加了額外的參數(shù)檢查代碼,來(lái)設(shè)定參數(shù)的最大值避免棧溢出風(fēng)險(xiǎn)。

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

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

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

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

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

本月無(wú)MTK驅(qū)動(dòng)中的漏洞。

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

\

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

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

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

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

 

 
 

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

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