ブログトップ 記事一覧 ログイン 無料ブログ開設

piyolog RSSフィード

2016-02-17

GNU Cライブラリの脆弱性(CVE-2015-7547)についてまとめてみた

| 01:14 |  GNU Cライブラリの脆弱性(CVE-2015-7547)についてまとめてみたを含むブックマーク

2016年2月17日に公開されたGNU Cライブラリの複数の脆弱性の内、CVE-2015-7547は任意のコードが実行可能であるとしてGoogleが報告しています。ここではこれら脆弱性に関連する情報をまとめます。

脆弱性情報

CVECVE-2015-7547CVE-2015-8776CVE-2015-8778CVE-2015-8779
影響DoS/RCEDoSDoSDoS
重要度HighLowLowLow
ステータスPoC公開PoC公開PoC公開PoC公開
対策修正版へ更新修正版へ更新修正版へ更新修正版へ更新
CVSS(v2)6.145.15.1
報告者Robert Holiday氏Adam Nielsen氏Szabolcs NagyMax氏
報告日(UTC)2015/07/132015/09/202015/04/102015/01/29
脆弱性を悪用するための前提条件

脆弱性が残るGNU C ライブラリを読み込み、次の環境で該当の関数が使用された場合に影響を受ける場合がある。

  • 攻撃者が制御するDNSサーバーに接続している
  • 悪意あるドメイン名を処理している
  • 中間者攻撃が可能な環境に接続している

脆弱性が確認された関数は次の通り。

CVE-2015-7547getaddrinfo()
CVE-2015-8776strftime()
CVE-2015-8778hcreate(), hcreate_r()
CVE-2015-8779catopen()
Google の検証情報

Failed exploit indicators, due to ASLR, can range from:

・Crash on free(ptr) where ptr is controlled by the attacker.

・Crash on free(ptr) where ptr is semi-controlled by the attacker since ptr has to be a valid readable address.

・Crash reading from memory pointed by a local overwritten variable.

・Crash writing to memory on an attacker-controlled pointer.

https://googleonlinesecurity.blogspot.jp/2016/02/cve-2015-7547-glibc-getaddrinfo-stack.html
Bugレポート
CVE-2015-7547In send_dg, the recvfrom function is NOT always using the buffer size of a newly created buffer (CVE-2015-7547)
CVE-2015-8776Passing out of range data to strftime() causes a segfault (CVE-2015-8776)
CVE-2015-8778hcreate, hcreate_r should fail with ENOMEM if element count is too large (CVE-2015-8778)
CVE-2015-8779catopen() Multiple unbounded stack allocations (CVE-2015-8779)
注意喚起
SANSCVE-2015-7547: Critical Vulnerability in glibc getaddrinfo
JPECERT/CCglibc ライブラリの脆弱性 (CVE-2015-7547) に関する注意喚起

タイムライン (CVE-2015-7547)

日時出来事
2015年7月13日Robert氏が脆弱性情報をレポート
2016年2月17日CVE-2015-7547を含むglibcの複数の脆弱性情報とパッチが公開。

影響範囲

GNU C ライブラリの次のバージョンを使用している場合に影響を受ける。

  • glibc 2.9(2008年5月リリース) 〜 2.22(2015年8月リリース)

各製品の脆弱性情報
OS脆弱性情報修正PKG
RedhatCritical security flaw: glibc stack-based buffer overflow in getaddrinfo() (CVE-2015-7547)
RHSA-2016:0175-1
RHSA-2016:0176-1
RHSA-2016:0225-1

CVE-2015-7547
CVE-2015-8776
CVE-2015-8778
CVE-2015-8779
RHEL 6 glibc-2.12-1.166.el6_7.7
RHEL 7 glibc 2.17-106.el7_2.4
RHEL HPCnode EUS,AUS,EUSも影響あり。
RHEL 3系、4系、5系は影響を受けない
CentOSCVE-2015-7547 glibc fix
CESA-2016:0175 Critical CentOS 6 glibc Security Update
CESA-2016:0176 Critical CentOS 7 glibc Security Update
CentOS 6 glibc-2.12-1.166.el6_7.7
CentOS glibc-2.17-106.el7_2.4
FedoraCVE-2015-7547
FEDORA-2016-0f9e9a34ce
FEDORA-2016-0480defc94
Fedora 22 glibc-2.21-11.fc22
Fedora 23 glibc-2.22-9.fc23
Fedora 24 glibc-2.22.90-36.fc24
DebianCVE-2015-7547
CVE-2015-8776
CVE-2015-8778
CVE-2015-8779

DLA-416-1(squeeze)
DSA-3480-1(wheezy)
DSA-3481-1(jessie)
squeeze eglibc 2.11.3-4+deb6u9
wheezy eglibc 2.13-38+deb7u10
jessie glibc 2.19-18+deb8u3
UbuntuUbuntu Security Notice USN-2900-1

CVE-2015-7547
CVE-2015-8776
CVE-2015-8778
CVE-2015-8779
Ubuntu 15.10 eglibc 2.21-0ubuntu4.1
Ubuntu 14.04 LTS glibc 2.19-0ubuntu6.7
Ubuntu 12.04 LTS glibc 2.15-0ubuntu10.13
OpenSuseCVE-2015-7547
CVE-2015-8776
CVE-2015-8778
CVE-2015-8779
SUSE 11 SP2 glibc-2.11.3-17.45.66.1
SUSE 12 SP1 glibc-2.19-35.1
SUSE 11 SP3/SP4 glibc-2.11.3-17.95.2
SUSE 12 glibc-2.19-22.13.1
openSUSE 42 glibc-2.19-19.1,glibc-testsuite-2.19-19.2,glibc-utils-2.19-19.1
Arch Linuxbug, CVE2016-7547glibc-2.22-4
AmazonCVE-2015-7547 AdvisoryAmazon EC2 (AWS DNS 非利用のみ)
Scientific Linuxglibc (SL7)glibc-2.17-106.el7_2.4
Android対象外
iOS対象外
OSX対象外

検証コード (CVE-2015-7547)

PoCの検証された方の記事

対策

  • 修正版へ更新し、再起動する。
  • 修正版が公開されていない場合、CVE-2015-7547の緩和策の実施、またはパッチ適用に向けた評価を検討する。
CVE-2015-7547のパッチ
緩和策

Googleより

  • DNSリゾルバがローカルで受け入れるレスポンスサイズをDNSMasq等で制限する
  • DNSクエリUDPのレスポンスサイズを制限するDNSサーバーのみ送信されるようにする

Redhatより

UDPに対してFWで512バイト以上のDNSパケット拒否する。
ローカルリゾルバで非準拠のレスポンスを拒否する。
A,AAAAの同時クエリを避ける。(例:AF_UNSPEC)
options edns0を使用しない。
RES_USE_EDNS0、またはRES_USE_DNSSECを使用しない。
TCPに対してすべてのレスポンスを1024バイトに制限する。

参考情報

この脆弱性について取り上げた記事など