Apache2.2.13のパッチ・パッケージについて

Top / メンテナンス・障害情報 / Apache2.2.13のパッチ・パッケージについて

Apache 2.2.11の持つセキュリティホール「CVE-2009-2699」について

2009年11月8日

OpenSolaris 2009.06のSUNWapch22(Apache2.2.11)には、セキュリティホール「CVE-2009-2699」が存在します。

  • http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-2699

このセキュリティホールを攻撃されると、次のような事がおきます。

  • httpdがハングアップします。
  • このときにnetstatをみると、CLOSE_WAITが多発しています。
  • 設定によっては希に自動復旧するが、通常は、サービスが停止したままになります。
  • svcadm restart apache22で、正常に再起動します(SIG_TERMは受け取ります)。
  • apacheのMPMがprefork(デフォルト)、eventの時のみ発生します。workerでは発生しません。
    • なお、mod_phpを利用する場合、preforkでしか動作しません。

このセキュリティホールは、ソースコードからコンパイルされた2.2.14未満のApache、OpenSolaris 2009.06、dev版のOpenSolaris snv_123未満のSUNWapch22に未満に内在します。

弊社によるパッチパッケージの配布について

このパッチパッケージは、次のように作成されています。

  • OpenSolarisのdevレポジトリ(snv_124)の、SUNWapch22、SUNWapch22m-dtrace、SUNWapr13、SUNWapu13、SUNapu13-ldapのパッケージから、バイナリのみ抽出した物です。
  • パッケージをインストールすると、2.2.11から2.2.13に差し変わります。
  • dev版となるため、release版に比べて、テストが十分にされているものではありません。そのため、予期しない別の問題が発生するおそれがあります。
  • パッケージには依存関係を書いていないため、インストール前に必ず上記パッケージをIPSからインストールしておく必要があります。
  • このパッケージは、無保証です。

パッチパッケージのインストール方法

ダウンロード

wget http://dist.justplayer.com/JPCPKG/OpenSolaris/5.11-0.111/common/i386/apch2213p.pkg.gz

wgetが無い場合は、先にwgetをインストールしてください。

pkg install -v SUNWwget

伸張

gzip -d apch2213p.pkg.gz

インストール前に、念のため/etc/apache2/2.2ディレクトリのバックアップをとっておいてください。

pfexec cp -rp /etc/apache2/2.2  /etc/apache2/2.2.orig

サービスの停止

pfexec svcadm disable -s apache22

停止していることを確認(httpdが立ち上がっていないこと)

ps -aef | grep httpd

インストール

pfexec pkgadd -d apch2213p.pkg

pkgaddが無い場合、先に

pkg install -v SUNWpkgcmds

とインストールしておいてください。

パッチは、上述のとおり、devパッケージから半ば強引に作られているため、いくつかのエラーがでます。ログは下記を参照ください

fileapache2.2.13_patch.txt

このパッケージにより、設置されるファイル群は次の通りです。fileapache2.2.13_patch_files.txt

起動方法

pfexec svcadm enable apache22

起動ログ/var/apache2/2.2/log/error_logを参照し、2.2.13にアップデートされていることを確認してください。

例:

[Sun Nov 08 15:34:17 2009] [notice] Apache/2.2.13 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8a DAV/2 PHP/5.2.9 configured -- resuming normal operations

アンインストール方法

サービスの停止

pfexec svcadm disable -s apache22

念のため、/etc/apache2/2.2ディレクトリのバックアップをとっておき、アンインストールします。

pfexec pkgrm apch2213p

そのままでは2.2.11のバイナリが破損したままなので、復元します。

pkg fix SUNWapch22 SUNWapch22m-dtrace SUNWapr13 SUNWapu13 SUNapu13-ldap

サービスを起動します

svcadm enable -r apache22

起動ログ/var/apache2/2.2/log/error_logを参照し、2.2.11に戻ったことを確認して下しさい。

[Sun Nov 08 15:40:39 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8a DAV/2 PHP/5.2.9 configured -- resuming normal operations
Private CloudPrivate Cloud
StorageStorage
NetworkNetwork