Apache HTTP Server 2.4.70公開 Windowsでのクラッシュやバッファーオーバーフローを修正

セキュリティニュース セキュリティ・ネットの安全
当サイトでは広告・アフィリエイトプログラムを利用しています。

この記事でわかること

  • Apache HTTP Server 2.4.70で変わった5項目と、それぞれが関係するサーバー環境
  • Windowsで2.4.69を使っている場合に、2.4.70への更新を優先したい理由
  • 自分のサーバーのApacheのバージョンと、読み込んでいるモジュールの確かめ方
50ITをGoogleの優先ソースに追加すると、AI・PC・スマホ・タブレット・ガジェットの新着記事を見つけやすくなります。

Apache HTTP Server 2.4.70が公開、変更は5項目

Apache Software Foundationは11月6日(現地時間)、Webサーバーソフト「Apache HTTP Server」の最新版2.4.70を公開しました。2.4系の最新の安定版で、新機能の追加はなく、不具合修正が中心のリリースです。Apacheは公開時の案内で、これまでのすべてのバージョンより2.4.70を推奨するとしています。

公式の変更履歴に載っている変更は次の5項目です。

モジュール変更内容
mod_authnz_ldap2.4.69でWindows環境から報告されたクラッシュを修正
mod_cgid扱える環境変数の数と長さ、URI、引数の上限を拡大
mod_substituteごく特殊な設定で起こりうる整数オーバーフローを修正
mod_cache「Header always」で「Vary: *」を付けた応答を保存しないように変更
mod_dav_lockdav_size_indirect()で起きるヒープバッファーオーバーフローを修正

Apacheを直接動かしているのは、主にWebサイトや社内システムのサーバーです。パソコンやスマホでWebを見るだけなら、利用者側で何かを更新する必要はありません。

Windowsの2.4.69でLDAP認証を使っているなら、クラッシュが直る

2.4.70の変更のうち、実際に起きていた不具合として報告されているのが、Windows上のApache 2.4.69でのLDAP認証のクラッシュです。mod_authnz_ldapは、Active DirectoryなどのLDAPサーバーを使って、Webページへのアクセスを認証するためのモジュール。2.4.69ではWindowsでこのモジュールがクラッシュするという報告があり、2.4.70で修正されました。この組み合わせで運用しているなら、2.4.70へ上げることでこのクラッシュの修正が入ります。

Apacheの公式ダウンロードページは、Windows版を第三者の配布元から入手するよう案内しています。そのひとつのApache Loungeの変更履歴にも、同じ5項目が2.4.70の変更として載っています。

メモリーまわりの修正もあるが、公式資料にCVEの記載はない

mod_substituteの整数オーバーフローと、mod_dav_lockのヒープバッファーオーバーフローは、どちらもメモリーの扱いに関わる不具合の修正です。ただ、11月9日時点で確認した2.4.70の公式変更履歴では、5項目のどれにもCVE番号(公表された脆弱性を識別する番号)やセキュリティ修正の表記がありません。Apacheの公式脆弱性一覧にも、2.4.70で修正されたCVEは掲載されていません。現時点では、脆弱性として公表された修正としては扱われていません。

どちらも、使っていないサーバーには関係しない修正です。mod_dav_lockはWebDAVのロックを管理する汎用モジュールで、単体では役に立たず、Subversionのmod_dav_svnのようにこれを利用するモジュールと組み合わせて初めて機能します。ふつうのWebDAV(mod_dav_fs)は独自のロック機能を持つため、mod_dav_lockを必要としません。mod_substituteは応答の中身を文字列置換で書き換えるモジュールで、Apacheは今回の不具合を「ごく特殊な設定」で起こりうるものとしています。

確認するのはバージョンと読み込んでいるモジュール

自分で管理しているサーバーなら、まずApacheのバージョンを確認します。コマンドラインでhttpd -v(DebianやUbuntuではapache2 -v)を実行すると、バージョンが表示されます。読み込まれるモジュールの一覧はhttpd -M(同じくapache2ctl -M)で確認できます。

-vが示すのは実行したhttpd本体のバージョン、-Mが示すのはそのとき読み込んだ設定ファイルで有効になるモジュールです。稼働中のサービスへ問い合わせるわけではないので、同じサーバーに別のApacheや別の設定ファイルがあると、動いているものとは違う環境を調べてしまいます。Windowsでサービスとして動かしている場合は、「サービス」(services.msc)でそのサービスのプロパティを開き、「実行ファイルのパス」に表示されるhttpd.exeを使います。そのうえで、サービスが使っている設定ファイルを-fで指定し、httpd.exe -f "C:/Apache24/conf/httpd.conf" -M(パスは一例)のように実行します。サーバールートを既定から変えている場合は、-dで同じ場所も指定してください。

更新の優先度は、いま使っているバージョンで変わります。

2.4.69からの更新なら、差分は上の5項目だけです。Windowsでmod_authnz_ldapを使っているなら、クラッシュの修正のために早めに上げる理由があります。mod_dav_lockやmod_substituteを読み込んでいる環境、mod_cacheでキャッシュする応答に「Header always」で「Vary: *」を付けている環境、mod_cgidで動かすCGIが環境変数やURI、引数の上限に当たっていた環境も、今回の変更が関係します。5項目のどれも自分の運用に当てはまらなければ、2.4.69から急いで上げなければならない変更は含まれておらず、通常の更新計画のなかで2.4.70へ移ればよい内容です。

2.4.68以前を使っているなら、話は別です。10月1日公開の2.4.69では、Apacheの公式脆弱性一覧でCVE番号付きの脆弱性20件(重要度は中5件、低15件)が修正されており、その多くは2.4.0〜2.4.68が対象です。2.4.70へ上げればこれらの修正も入るため、上の5項目のモジュールを使っていないことは、更新を後回しにする理由になりません。どの脆弱性が自分の環境に当てはまるかは、公式脆弱性一覧で利用中のバージョンとモジュールを照らし合わせて判断できます。

LinuxディストリビューションのパッケージでApacheを入れている場合は、配布元のパッケージ更新を待つ形になります。ディストリビューションによってはバージョン番号を変えずに修正だけを取り込むことがあるので、-vの表示だけでなく配布元の更新情報もあわせて見てください。XAMPPのようにApacheを同梱したソフトも、同梱版がいつ2.4.70になるかは配布元しだいです。レンタルサーバーのように事業者がApacheを管理しているサービスでは、利用者が自分で更新する必要はありません。

50ITをGoogleの優先ソースに追加すると、AI・PC・スマホ・タブレット・ガジェットの新着記事を見つけやすくなります。