Linux KernelにKEYS周りの複数の脆弱性(CVE-2017-17805, CVE-2017-17806, CVE-2017-17807)
こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
12/20/2017にLinux KernelにKEYS周りの複数の脆弱性情報(CVE-2017-17805, CVE-2017-17806, CVE-2017-17807)が公開されています。今回はこの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。
一次情報源
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.8
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17805
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17806
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17807
Priority
Moderate(CVE-2017-17805,CVE-2017-17806), Low(CVE-2017-17807)
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17805
DoS(初期化されていないメモリの開放とカーネルのクラッシュ)の可能性
重要度 – Moderate
Linux Kernel 4.14.8以前では、Salsa20暗号化アルゴリズムでゼロ長の入力値をきちんとハンドリングできていなかったため、ローカルの攻撃者がblkcipher_walk APIを使うシステムコールを細工して、AF_ALGベースのskcipherインターフェイス(CONFIG_CRYPTO_USER_API_SKCIPHER)を通じてDoS(初期化されていないメモリの開放とカーネルのクラッシュ)を引き起こす事が可能です。
Generic(crypto/salsa20_generic.c)とx86実装(arch/x86/crypto/salsa20_glue.c)の両方共に脆弱性があります。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17806
カーネルのスタックバッファオーバーフローの可能性
重要度 – Moderate
Linux Kernel 4.14.8以前では、HMAC実装(crypto/hmac.c)で基盤が鍵なしハッシュ関数であるかどうかをチェックしていないため、ローカルの攻撃者はSHA-3の初期化を行わないように細工されたシステムコールを用い、AF_ALG-ベースのハッシュインターフェイス(CONFIG_CRYPTO_USER_API_HASH)とSHA-3ハッシュアルゴリズム(CONFIG_CRYPTO_SHA3)を通してカーネルのスタックバッファオーバーフローを引き起こす事が出来る可能性が有ります。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17807
ローカルユーザによる権限を無視したkeyringへの鍵の追加の可能性
重要度 – Low
Linux Kernel 4.14.6以前でのKEYSサブシステム(security/keys/request_key.cのconstruct_get_dest_keyring()周り)では、キーをrequest_key()システムコールを通してcurrentタスクの”default request-key keyring”に追加する際に、アクセスコントロールチェックを省略していたので、ローカルユーザは細工したシステムコールを使用して、keyringへのパーミッションがWriteパーミッションでは無くSearchパーミッションだけにも関わらず、キーをkeyringに追加することが出来る可能性があります。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
Debian
https://security-tracker.debian.org/tracker/CVE-2017-17805
Red Hat Enterprise Linux/CentOS
https://access.redhat.com/security/cve/CVE-2017-17805
Ubuntu
https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-17805.html
https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-17806.html
https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-17807.html
SUSE/openSUSE
https://www.suse.com/security/cve/CVE-2017-17805.html
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat Satelliteを使うと管理が便利でしょう。
Red Hat Satelliteを用いた一般的なErattaの適用は、『Red Hat Satellite 6でerrataを適用してみる』を
参考にして下さい。
また、OSの再起動が発生しますので、pacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。
[参考]
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.8
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17805
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17806
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17807
セキュリティ系連載案内
OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2017のレポートが紹介されています。