こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
04/12/2022にSubversionの脆弱性(High/Important: CVE-2022-24070)が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。
[過去の関連リンク]
Apache Subversionの脆弱性(Important: CVE-2020-17525)
Apache Subversionの脆弱性情報(Important: CVE-2019-0203)
Priority
CVE番号 | 影響するバージョン | 一次情報源 | Priority | CVSS Score / CVSS Vector |
---|---|---|---|---|
CVE-2022-24070 | 1.10.0 <= mod_dav_svn < 1.14.1 | Subversion’s mod_dav_svn is vulnerable to memory corruption | Vendor: 7.5 High Red Hat: 7.5 Important | Vendor: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H Red Hat: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24070
- DoS(segfault crash)の可能性
- Apache HTTP サーバのSubversionモジュール(mod_authz_svn)では、httpdが様々なタイミングでコールするいくつかのフックが埋め込まれています。
それらの中で、post_configはモジュールの初期化の際に複数回コールされています。コールの回数と目的は、そのモジュールがhttpdの起動時に読み込まれているか、httpdサーバの設定をリロードした事で読み込まれたかによって変わってきます。
httpdがモジュールを起動時に読み込んだ場合、確認の目的でモジュールはpost_configフックをコールして設定のチェックを行います。その後、httpdはフックをコールし、これが”本当の”初期化コールとなります。
対照的に、httpdがモジュールを起動後に読み込んだ場合、自身の設定をリロードするため、post_configフックのコールは一回だけとなります。
脆弱性のあるバージョンのSubversionでは、post_configフックの実装がこれらのセマンティックを考慮していません。従って、常に最初のコールを”本当の”コールと考えてポインタキャッシュなどを含む初期化を行っています。コールが実際に確認のためだけに使用されている場合、これらのポインタは従ってクリアされた不正な値となってしまいます。
これらの操作により、開放されたメモリがsegfaultクラッシュを引き起こす可能性があります。
影響されるポインタはSubversionでパスベース認証(authz)ルールの検索のために使用されているものだけになります。しかしながら、不正なポインタが残ってしまうと何が起こるかわからないため、authzを使用していないサーバでもアップデートしておく必要があります。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。
また、サービスの再起動が発生しますので、pacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。
日々のメモを更新しています。
セキュリティ関係ニュースを更新しています。個別で情報出せるようになる前の簡単な情報・リンクなんかも載せていきます。