Libreswanの脆弱性(Important: CVE-2022-23094)

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

01/17/2021にLibreswanの脆弱性(Important: CVE-2022-23094)が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。



[過去の関連リンク]


Priority

CVE番号 影響するバージョン 一次情報源 Priority CVSS Score / CVSS Vector
CVE-2022-23094 4.2 <= Libreswan <= 4.5

CVE-2022-23094: Malicious IKEv1 packet can cause libreswan to restart

Red Hat: 7.5 Important

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-23094
    • DoSの可能性
    • 4.2から4.5までのLibreswanでは、pluto/idev1.cでオブジェクトが存在するか否かの評価に問題があったことから、リモートの攻撃者が細工したIDEv1パケットによりNULLポインタ被参照を引き起こしデーモンをクラッシュさせるDoSの脆弱性があります。
      
      ===============================
      Patch for libreswan 4.4 or 4.5:
      ===============================
      diff --git a/programs/pluto/ikev1.c b/programs/pluto/ikev1.c
      index 9f4847874d..f7413f3594 100644
      - --- a/programs/pluto/ikev1.c
      +++ b/programs/pluto/ikev1.c
      @@ -2103,7 +2103,9 @@ void process_packet_tail(struct msg_digest *md)
       					diag_t d = pbs_in_struct(&md->message_pbs, &isakmp_ignore_desc,
       								 &pd->payload, sizeof(pd->payload), &pd->pbs);
       					if (d != NULL) {
      - -						llog_diag(RC_LOG, st->st_logger, &d, "%s", "");
      +						llog_diag(RC_LOG,
      +							st != NULL ? st->st_logger : md->md_logger,
      +							&d, "%s", "");
       						LOG_PACKET(RC_LOG_SERIOUS,
       							   "%smalformed payload in packet",
       							   excuse);
      @@ -2172,7 +2174,9 @@ void process_packet_tail(struct msg_digest *md)
       						 &pd->payload, sizeof(pd->payload),
       						 &pd->pbs);
       			if (d != NULL) {
      - -				llog_diag(RC_LOG, st->st_logger, &d, "%s", "");
      +				llog_diag(RC_LOG,
      +					st != NULL ? st->st_logger : md->md_logger,
      +					&d, "%s", "");
       				LOG_PACKET(RC_LOG_SERIOUS,
       					   "%smalformed payload in packet",
       					   excuse);
      
  • 緩和策:IKEv2を使用している場合IKEv1サブシステムはipsec.confの"config setup"箇所でikev1-policy=dropオプションを設定することで無効に出来ます。あるいは、libreswanをコンパイルする際に"USE_IKEv1=false"を指定してください。

主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください


対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteKatello、Spacewalk等を使うと管理が便利でしょう。

また、サービスの再起動が発生しますので、pacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。

日々のメモを更新しています。

セキュリティ関係ニュースを更新しています。個別で情報出せるようになる前の簡単な情報・リンクなんかも載せていきます。

前へ

Linux Kernelの脆弱性(CVE-2022-23222)

次へ

Oracle Javaの脆弱性(Oracle Critical Patch Update Advisory - Jan 2022)