Red Hat Satellite 5.x は CVE-2013-4480 の影響を受けますか?

更新 -

問題

CVE-2013-4480 によって特定された不具合 (Red Hat Bugzilla 1024614) は、ユーザーが提供した web クエリによって、Satellite コンソールに管理ユーザーが追加される問題について説明しています。リモートの、特権のないユーザーがこの不具合を利用して、Satellite コンソールの管理者権限を取得することができます。

一般的なセキュリティ上の脆弱性は利用できませんが、開発に特定の知識またはツールは必要ありません。

環境

  • Red Hat Satellite 5 (サポートされるすべてのバージョンと、古いバージョンを含む)

解決策

この問題を修正するためのアップデートが利用できます。このアップデートをすぐに適用することをお勧めします。

アップデートができない場合は、/var/lib/tomcat[56]/webapps/rhn/WEB-INF/struts-config.xml ファイルを手動で修正して、必要な確認を 2 つ追加します。

Red Hat Enterprise Linux 5.4 以降

1) struts-config.xml ファイルで "CreateFirstUserSubmit" セクションを検索し、<set-property property="postRequired" value="true" /> 行の下に以下の行を追加します。

<set-property property="acls" value="need_first_user()"/>

修正したセクションは以下のようになります。

    <action path="/newlogin/CreateFirstUserSubmit"
        name="createSatelliteForm"
        scope="request"
        validate="false"
        input="/WEB-INF/pages/user/create/usercreate.jsp"
        type="com.redhat.rhn.frontend.action.user.CreateUserAction"
        className="com.redhat.rhn.frontend.struts.RhnActionMapping">
      <set-property property="postRequired" value="true" />
      <set-property property="acls" value="need_first_user()"/>
      <forward name="success_sat" path="/YourRhn.do"
               redirect="true"/>
      <forward name="fail-sat" path="/newlogin/CreateFirstUser.do"/>
    </action>

2) struts-config.xml ファイルで "CreateSatelliteSubmit" セクションを検索し、<set-property property="postRequired" value="true" /> 行の下に以下の行を追加します。

<set-property property="acls" value="user_role(org_admin)"/>

修正したセクションは以下のようになります。

    <action path="/newlogin/CreateSatelliteSubmit"
        name="createSatelliteForm"
        scope="request"
        validate="false"
        input="/WEB-INF/pages/user/create/usercreate.jsp"
        type="com.redhat.rhn.frontend.action.user.CreateUserAction"
        className="com.redhat.rhn.frontend.struts.RhnActionMapping">
      <set-property property="postRequired" value="true" />
      <set-property property="acls" value="user_role(org_admin)"/>
      <forward name="existorgsuccess" path="/users/ActiveList.do"
               redirect="true"/>
      <forward name="failure" path="/users/CreateUser.do"/>
    </action>

3) Satellite サーバーを再起動 ("service rhn-satellite restart") して、上の変更を有効にする必要があります。

Red Hat Satellite 5.3、5.2、およびそれ以前

1) struts-config.xml ファイルで "CreateFirstUserSubmit" セクションを検索し、type="com.redhat.rhn.frontend.action.user.CreateUserAction"> 行の下に以下の行を追加します。

className="com.redhat.rhn.frontend.struts.RhnActionMapping">
<set-property property="acls" value="need_first_user()"/>

また、type="com.redhat.rhn.frontend.action.user.CreateUserAction"> 行の末尾の ' > '文字を削除します。

修正したセクションは以下のようになります。

    <action path="/newlogin/CreateFirstUserSubmit"
        name="createSatelliteForm"
        scope="request"
        validate="false"
        input="/WEB-INF/pages/user/create/usercreate.jsp"
        type="com.redhat.rhn.frontend.action.user.CreateUserAction"
        className="com.redhat.rhn.frontend.struts.RhnActionMapping">
      <set-property property="acls" value="need_first_user()"/>
      <forward name="success_sat" path="/YourRhn.do"
               redirect="true"/>
      <forward name="fail-sat" path="/newlogin/CreateFirstUser.do"/>
    </action>

2) struts-config.xml ファイルで "CreateSatelliteSubmit" セクションを検索し、type="com.redhat.rhn.frontend.action.user.CreateUserAction"> 行の下に以下の行を追加します。

className="com.redhat.rhn.frontend.struts.RhnActionMapping">
<set-property property="acls" value="user_role(org_admin)"/>

また、type="com.redhat.rhn.frontend.action.user.CreateUserAction"> 行の末尾の ' > '文字を削除します。

修正したセクションは以下のようになります。

    <action path="/newlogin/CreateSatelliteSubmit"
        name="createSatelliteForm"
        scope="request"
        validate="false"
        input="/WEB-INF/pages/user/create/usercreate.jsp"
        type="com.redhat.rhn.frontend.action.user.CreateUserAction"
        className="com.redhat.rhn.frontend.struts.RhnActionMapping">
      <set-property property="acls" value="user_role(org_admin)"/>
      <forward name="existorgsuccess" path="/users/ActiveList.do"
               redirect="true"/>
      <forward name="failure" path="/users/CreateUser.do"/>
    </action>

3) Satellite サーバーを再起動 ("service rhn-satellite restart") して、上の変更を有効にする必要があります。