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パッケージから半ば強引に作られているため、いくつかのエラーがでます。ログは下記を参照ください
このパッケージにより、設置されるファイル群は次の通りです。apache2.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