Linux PIE/stack 內存破壞漏洞(CVE–2017–1000253)預警

0x00 事件描述

2015年4月14日,Michael Davidson發現 PIE(Position Independent Executable)機制允許將一部分應用程序的數據段放置在超過預留的內存區域,可能會造成內存越界,進而導致提權,並在Linux Source Tree上提交了補丁a87938b2e246b81b4fb713edb371a9fa3c5c3c86。

同年5月, Linux 3.10.77版本更新了該補丁,但是並沒有對該問題的重要性作出準確的評估,故許多發行版很長一段時間裡沒有更新該補丁,導致漏洞一直存在。

2017年9月26日,OSS-SEC郵件組中發布了與該漏洞相關的信息,並表示該漏洞編號為CVE-2017-1000253。同時,相關受影響的Linux發行版也發布了該漏洞相關的更新補丁。

經過360CERT評估,該漏洞可利用風險等級高,可用於Linux操作系統惡意本地提權root,建議受影響用戶儘快完成相應更新。

0x01 事件影響面

影響等級

漏洞風險等級高,影響範圍廣。

影響版本

2017年09月13日前發行的 CentOS 7 全版本(版本1708前)

2017年08月01日前發行的 Red Hat Enterprise Linux 7 全版本(版本7.4前)

所有版本的CentOS 6 和 Red Hat Enterprise Linux 6

修復版本

Kernel 3.10.0-693 以及之後的版本

具體的發行版:

Debian wheezy 3.2.71-1

Debian jessie 3.16.7-ckt11-1

Debian (unstable) 4.0.2-1

SUSE Linux Enterprise Desktop 12 SP2

SUSE Linux Enterprise Desktop 12 SP3

SUSE Linux Enterprise Server 12 GA

SUSE Linux Enterprise Server 12 SP1

SUSE Linux Enterprise Server 12 SP2

SUSE Linux Enterprise Server 12 SP3

Red Hat Enterprise MRG 2 3.10.0-693.2.1.rt56.585.el6rt

Red Hat Enteprise Linux for Realtime 3.10.0-693.rt56.617

0x02 漏洞信息

Linux環境下,如果應用程序編譯時有「-pie」編譯選項,則load_elf_binary()將會為其分配一段內存空間,但是load_elf_ binary()並不考慮為整個應用程序分配足夠的空間,導致PT_LOAD段超過了mm->mmap_base。在x86_64下,如果越界超過128MB,則會覆蓋到程序的棧,進而可能導致許可權提升。 官方提供的內存越界的結果圖:

官方補丁提供的方法是計算並提供應用程序所需要的空間大小,來防止內存越界。

0x03 修復方案

強烈建議所有受影響用戶,及時進行安全更新,可選方式如下:

相關Linux發行版已經提供了安全更新,請通過 yumapt-get 的形式進行安全更新。

自定義內核的用戶,請自行下載對應源碼補丁進行安全更新。

補丁地址:git.kernel.org/pub/scm/

0x04 時間線

2015-04-14 Michael Davidson提交漏洞補丁,並被接受

2017-09-26 OSS-SEC郵件組公布漏洞信息

2017-09-27 360CERT發布預警通告

0x05 參考資料

qualys.com/2017/09/26/c

access.redhat.com/secur

security-tracker.debian.org

suse.com/security/cve/C

git.kernel.org/pub/scm/


推薦閱讀:

Intel處理器漏洞Meltdown(熔毀)和Spectre(幽靈)應急處置建議
如何批量找SQL注入(工具+資源都打包)
從這兩年的雲計算行業安全黑板報來看看雲安全現狀

TAG:Linux | 漏洞挖掘 | 安全漏洞 |