Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

libuser 脆弱性 (CVE-2015-3245 および CVE-2015-3246)

Red Hat Product Security チームは、userhelper ユーティリティー (usermode パッケージの一部) および libuser ライブラリーの 2 つのセキュリティー脆弱性を認識しています。シェルアクセスを持つ認証されたローカルユーザーはこれらの脆弱性を組み合わせる事で、root ユーザーに特権昇格できる可能性があります。これらの不具合については、CVE-2015-3245 および CVE-2015-3246 が割り当てられています。これらの不具合の組み合わせによる脆弱性の影響度は 重要な影響 と評価されています。これらの問題をご報告いただいた Qualys に謝意を表します。

背景情報

libuser ライブラリーは、ユーザーおよびグループアカウントの操作および管理を行うための標準化されたインターフェースを実装します。usermodeパッケージに含まれる userhelper プログラムは、ユーザーのパスワード、GECOS フィールドおよびシェルを変更するための基本的な非対話型インターフェースを提供します。

影響

これらの関連する 2 つの脆弱性についての詳細は、以下の 2 つのセクションを参照してください。

パスワードファイル更新の競合状態 (CVE-2015-3246、[重要な影響])

libuser ライブラリーが /etc/passwd ファイルを処理する方法に関連する不具合の脆弱性が発見されました。passwdchfn、および chsh などの従来のプログラムは /etc/passwd の一時コピーを使用して機能し、最終的には rename() 機能を使って一時コピーの名前を変更しますが、libuser/etc/passwd を直接変更します。これらの変更時に問題が発生すると、libuser/etc/passwd を整合性のない状態のままにする可能性があります。

この動作は、ローカルのサービス拒否攻撃につながる可能性があります。さらに、2 つ目の脆弱性 (CVE-2015-3245: 以下に記載) と組み合わさると、一般ユーザーを root ユーザーへ特権昇格させる可能性があります。

この問題に対応するセキュリティーアドバイザリーのリンクについては、以下の表を参照してください。

GECOS フィールドのコンテンツが検証されない (CVE-2015-3245、[中程度の影響])

userhelper ユーティリティーの chfn 機能は、改行文字のフィルター処理を適切に実行しませんでした。userhelper ユーティリティーによって実装される chfn 機能は、コマンドラインに指定されるフィールドが有効であることを検証します (つまり、禁止文字が含まれていないことを検証します)。ただし、これらの禁止文字 (:,=) には \n 文字が含まれていなかったため、ローカル攻撃者が改行文字を /etc/passwd ファイルに挿入し、このファイルを予想外の方法で変更することが可能でした。

ローカル攻撃者はこの不具合を利用して /etc/passwd ファイルを破損し、システム上でサービス拒否攻撃を引き起こす可能性があります。

注記: この問題の原因は usermode パッケージにありましたが、CVE-2015-3246 の脆弱性に対処するために libuser に変更が加えられたことから、この問題は libuser のアップデートにより修正されています。

セキュリティーアドバイザリー

Red Hat Enterprise Linux 6 および 7 に同梱されるすべてのバージョンの libuser ライブラリーがこれらの不具合の影響を受けます。この問題の修正に関するセキュリティーアドバイザリーのリンクについては、以下の表をご覧ください。

製品 アドバイザリー
Red Hat Enterprise Linux 6 RHSA-2015:1482
Red Hat Enterprise Linux 7 RHSA-2015:1483

 
この問題は、Red Hat Enterprise Linux 5 にも影響を与えます。Red Hat Enterprise Linux 5 は現在、サポートおよびメンテナンスライフサイクルの運用フェーズ 3 にあります。Red Hat Enterprise Linux 5 については、この問題が今後のアップデートで対応される予定は今のところありません。詳細は、Red Hat Enterprise Linux のライフサイクル を参照してください。

Atomic ホストおよびコンテナー

Red Hat がリリースする公式のコンテナーイメージにはすべて libuser ライブラリーの脆弱なバージョンが含まれます。ユーザーの皆様には、これらのコンテナーに組み込まれた yum 機能を使って修正バージョンにアップデートしてただけます (以下の「解決策」を参照してください)。このアップデートにより、脆弱性は解決されます。アップデートを反映したこれらのコンテナーの更新ビルドはまもなくリリースされます。

Atomic ホストには libuser ライブラリーの脆弱なバージョンが含まれます。組み込まれた yum 機能を使用して、Atomic がホストするすべてのコンテナーをこれらのパッケージの修正バージョンにアップデートすることができます。コンテナーからはこれらの問題を利用して Atomic ホストの脆弱性を悪用することはできません。次の累積アップデートには、Atomic ホストの修正が組み込まれます。

クラウドイメージおよびアプライアンス

Red Hat がリリースする公式のクラウドおよびアプライアンスイメージには libuser ライブラリーの脆弱なバージョンが含まれます。ユーザーの皆様には、これらのコンテナーに組み込まれた yum 機能を使って修正バージョンにアップデートしていただけます (以下の「解決策」を参照してください)。このアップデートにより、脆弱性は解決されます。アップデートを反映したこれらのコンテナーの更新リスピン (respin) はまもなくリリースされます。

Amazon Web Services

Red Hat Enterprise Linux Amazon Machine インスタンスには libuser ライブラリーの脆弱なバージョンが含まれます。組み込まれた yum 機能を使って、システムをこれらのパッケージの修正バージョンにアップデートすることができます (以下の「解決策」を参照してください)。

RHEV-H イメージ

Red Hat Enterprise Virtualization Hypervisor アプライアンスイメージには libuser ライブラリーの脆弱なバージョンが含まれます。これらのイメージは仮想マシンをホストするためにのみ使用し、信頼できないローカルユーザーにアクセスを許可しないようにしてください。

これらの問題を利用して、仮想マシンから RHEV-H ホストを攻撃することはできません。この脆弱性には、RHEV-H イメージの今後のアップデートで対応します。

解決策

この脆弱性が悪用される可能性を排除するには、上記の表に一覧表示されているアドバイザリーから入手可能なアップデートされた libuser パッケージをインストールします。

アップデートをインストールするには、以下のように yum パッケージマネージャーを使用します。

yum update

libuser パッケージとその依存関係のアップデートのみを実行する場合は、以下を使用します。

yum update libuser

軽減策

libuser の仕組みにより、これらの脆弱性を悪用できるのは /etc/passwd にすでにリストされたアカウントを持つユーザーのみになります。さらに、ユーザーは攻撃の際にアカウントのパスワードを指定する必要があります。これらの条件は、LDAP (またはその他の NSS データソース) にのみリストされるアカウントや、有効なパスワードのないシステムアカウントではこの脆弱性を悪用することができないことを示しています。

libuser をアップデートできないシステムでは、システム管理者は、/etc/pam.d/chfn および /etc/pam.d/chsh の 2 つのファイルに pam_warn および pam_deny ルールを追加して、root 以外のユーザーが脆弱なサービスを使用できないようにすることができます。これら 2 つのファイルを編集する際に以下を含める必要があります。

#%PAM-1.0
auth       sufficient   pam_rootok.so
auth required pam_warn.so
auth required pam_deny.so
auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    include      system-auth

この後は、特権のないユーザーによる chfnchsh (および userhelper プログラムでのそれぞれの機能) の使用の試みは失敗し、この試行はログに記録されます (デフォルトでは /var/log/secure 内)。

Comments