こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
10/19/2021にstrongSwanの脆弱性情報(Moderate: CVE-2021-41990, CVE-2021-41991)が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。
[過去の関連リンク(最新5件)]
Priority
CVE番号 | 一次情報源 | 影響するバージョン | Priority | CVSS Score / CVSS Vector |
---|---|---|---|---|
5.6.1 <= strongSwan | Red Hat: 7.5 Moderate | Red Hat: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | ||
4.2.10 <= strongSwan | Red Hat: 7.5 Moderate | Red Hat: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41990
- gmpプラグインの整数オーバーフロー
- 非常に高いsalt長で定義されたRSASSA-PSS署名により整数オーバーフローを引き起こしSegmentation Faultを引き起こす可能性があります。
オリジンサーバやピアの証明書をチェックする際に、Squidは特定の証明書に関して信頼されていると誤って分類してしまう問題が見つかりました。
strongSwan 5.6.1からRSASSA-PSS署名が加わりました。このような署名のalgorithmIdentifier構造体のパラメータフィールドはハッシュアルゴリズムやsalt長を含んでいます。gmpプラグインはsalt長をchunk_tのsize_t lenフィールドにパースして、構造体が正しいかを確認するために使用されています。RFC 8017, Section 9.1.2により、以下の式が使用されています:
em.len < (hash.len + salt.len + 2)
em.lenは復号化された署名の長さであり、その他はhash長とsalt長です。提供されたsalt長が非常に高い場合(例えば2^64-1)、これは整数オーバーフローを引き起こしチェックをバイパスします。
- 緩和策:この脆弱性はgmpプラグインが影響を受けるため、モジュールを有効にしない事で影響を緩和することが出来ます。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41991
- キャッシュの署名のリプレースによる整数オーバーフロー
- インメモリの証明書キャッシュが満杯になった際にエントリ中で使用頻度が低いエントリをランダムに置き換えようとします。ランダム値の生成によて絵は、これが整数オーバーフローを引き起こし、結果として二重デリファレンスを引き起こして境界外メモリを使用しSegmentation Faultを引き起こします。
in-memory証明書キャッすは有効な証明と発行元の証明書の関係性が格納されており、同じ証明書を後に検証する際にパフォーマンスを向上させます。サイズリミットは32 slotになっています(サイズはコンパイル時間の定数です)。全てのslotがフルになった場合、コードは他のスロットで使用率が全てのslot平均の半分以下になっているslotを探します。この検索は以下のようなコードで実装されています:
int offset = random(); for (int i = 0; i < 32; i++) { rel = &this->relations[(i + offset) % CACHE_SIZE]; if (rel->hits > total_hits / 32) { continue; } if (rel->lock->try_write_lock(rel->lock)) { /* replace cache entry */ return; } }
random()関数は0からRAND_MAX(通常2^31-1)までの値を返します。返す値が非常に大きい場合、indexの計算により整数オーバーフローが発生し、境界外アレイへのアクセスが発生します。hitチェックがパスした場合に、二重デリファレンスが発生しSegmentation Faultを引き起こす可能性があります。
- 緩和策:通常のインストールではin-memory証明書キャッシュは有効になっていません。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
- Red Hat Enterprise Linux/CentOS
- Ubuntu
- SUSE/openSUSE
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。
また、サービスの再起動が発生しますので、peacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2018のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。
- OSSセキュリティ技術の会の面により、Linux セキュリティ対策最新ガイドが執筆・販売されています。
日々のメモを更新しています。
セキュリティ関係ニュースを更新しています。個別で情報出せるようになる前の簡単な情報・リンクなんかも載せていきます。
セミナー情報1
コンピュータセキュリティシンポジウム(CSS)2021併設のワークショップ、 OSSセキュリティ技術ワークショップ(OWS) 2021の企画講演セッション及び、 一般論文セッションをさせていただきます。
今年もオンラインでの開催となり、OWSトラックの一般論文セッションと企画セッションを行いますので,ご参加よろしくお願いいたします。