Amazon Linux 2: kernel(ALAS-2022-1749)

high Nessus プラグイン ID 157408

概要

リモートの Amazon Linux 2 ホストに、セキュリティ更新プログラムがありません。

説明

リモートホストにインストールされているカーネルのバージョンは、4.14.262-200.489より前のものです。したがって、ALAS2-2022-1749 のアドバイザリに記載されている複数の脆弱性の影響を受けます。

- 不正なバックエンドにより、高頻度のイベントを介してゲストの DoS が引き起こされる可能性があります。この CNA 情報レコードは複数の CVE に関連しています。テキストは、どの側面 / 脆弱性がどの CVE に対応するかを説明します。Xen は、通常はドライバードメインと呼ばれる、権限のない通常のゲストで PV バックエンドを実行する機能を提供します。
ドライバードメインで PV バックエンドを実行することには、セキュリティ上の主な利点が 1 つあります。それは、ドライバードメインが侵害された場合、システムを乗っ取る権限がないことです。ただし、長い時間割り込みを処理しようとするため、悪意のあるドライバードメインが高頻度でイベントを送信することで他のゲストを攻撃し、サービス拒否を引き起こす可能性があります。影響がある 3 つのバックエンドがあります: * blkfront パッチ 1、CVE-2021-28711* netfront パッチ 2、CVE-2021-28712* hvc_xen (コンソール) パッチ 3、CVE-2021-28713 (CVE-2021-28711、CVE-2021-28712、CVE-2021-28713)

- ゲストは、Linux netback ドライバーに、大量のカーネルメモリを占有させることができます。この CNA 情報レコードは、複数の CVE に関連しています。テキストは、どの側面 / 脆弱性がどの CVE に対応するかを説明しています。Linux カーネルの netback ドライバーのゲストの受信データパケットは、ゲストがそれらを処理する準備ができるまでバッファリングされます。過剰なデータの蓄積を回避するための対策がいくつかありますが、ゲストによってバイパスされる可能性があります: インターフェースが停止したと見なされる前に、インターフェースのクライアント側が新しいパケットの消費を停止できる時間のタイムアウトがありますが、このタイムアウトはかなり長くなります (デフォルトでは 60 秒)。
高速インターフェースで UDP 接続を使用すると、その時間内に数ギガバイトのデータを簡単に蓄積できます。
(CVE-2021-28715) ゲストが RX キューリングページに 1 つだけの空きスロットを持つように管理し、次のパッケージに複数の空きスロットが必要な場合、タイムアウトがトリガーされないことさえあります。これは、GSO、XDP、またはソフトウェアハッシングを使用した場合に発生する可能性があります。(CVE-2021-28714) (CVE-2021-28714、CVE-2021-28715)

- infiniband を介した RDMA の Linux カーネルの実装に欠陥が見つかりました。権限のあるローカルアカウントを持つ攻撃者が、/dev/infiniband/rdma_cm デバイスノードにコマンドを発行する際に、カーネルスタック情報を漏洩する可能性があります。このアクセスがユーザーの機密情報を漏洩する可能性は低いですが、これをさらに利用して既存のカーネル保護メカニズムを無効にすることができます。(CVE-2021-3923)

- Unix ドメインソケットファイルハンドラーの Linux カーネルのガベージコレクションで、ユーザーが close() と fget() を同時に呼び出し、競合状態をトリガーする可能性のある方法で、read-after-free メモリ欠陥が見つかりました。この欠陥により、ローカル ユーザーがシステムをクラッシュさせたり、システム上で権限を昇格させたりする可能性があります。
この欠陥は、5.16-rc4 より前の Linux カーネルバージョンに影響を与えます。(CVE-2021-4083)

- XFS ファイルシステムの XFS_IOC_ALLOCSP IOCTL でサイズが調整されていないファイルのサイズ増加が可能な方法で、データ漏洩の欠陥が見つかりました。ローカルの攻撃者がこの欠陥を利用して、アクセスできない XFS ファイルシステムのデータを漏洩する可能性があります。(CVE-2021-4155)

- 5.15.11 までの Linux カーネルの TEE サブシステムの drivers/tee/tee_shm.c にメモリ解放後使用 (Use After Free) があります。
これは、共有メモリオブジェクトを解放しようとする際の tee_shm_get_from_id の競合状態が原因で発生します。(CVE-2021-44733)

- Linux カーネルでは、次の脆弱性が解決されています。sctp: call_rcu を使用してエンドポイントを解放します。このパッチでは、call_rcu() を呼び出すことでエンドポイントの解放を遅らせ、sctp_sock_dump() 内の別の use-after-free の問題を修正します: BUG: KASAN: use-after-free in __lock_acquire+0x36d9/0x4c20 Call Trace:
__lock_acquire+0x36d9/0x4c20 kernel/locking/lockdep.c:3218 lock_acquire+0x1ed/0x520 kernel/locking/lockdep.c:3844 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
_raw_spin_lock_bh+0x31/0x40 kernel/locking/spinlock.c:168 spin_lock_bh include/linux/spinlock.h:334 [inline] __lock_sock+0x203/0x350 net/core/sock.c:2253 lock_sock_nested+0xfe/0x120 net/core/sock.c:2774 lock_sock include/net/sock.h:1492 [inline] sctp_sock_dump+0x122/0xb20 net/sctp/diag.c:324 sctp_for_each_transport+0x2b5/0x370 net/sctp/socket.c:5091 sctp_diag_dump+0x3ac/0x660 net/sctp/diag.c:527
__inet_diag_dump+0xa8/0x140 net/ipv4/inet_diag.c:1049 inet_diag_dump+0x9b/0x110 net/ipv4/inet_diag.c:1065 netlink_dump+0x606/0x1080 net/netlink/af_netlink.c:2244 __netlink_dump_start+0x59a/0x7c0 net/netlink/af_netlink.c:2352 netlink_dump_start include/linux/netlink.h:216 [inline] inet_diag_handler_cmd+0x2ce/0x3f0 net/ipv4/inet_diag.c:1170 __sock_diag_cmd net/core/sock_diag.c:232 [inline] sock_diag_rcv_msg+0x31d/0x410 net/core/sock_diag.c:263 netlink_rcv_skb+0x172/0x440 net/netlink/af_netlink.c:2477 sock_diag_rcv+0x2a/0x40 net/core/sock_diag.c:274 この問題は、アソシエーションがピールオフされたときに発生し、旧 sk は asoc->base.sk による取得後、lock_sock(sk) の呼び出し前に解放されます。
sk ホルダーとして sk を解放することを防ぐには、lock_sock() を呼び出す際に ep を動作させておく必要があります。このパッチは、call_rcu() を使用し、sock_put と ep free を sctp_endpoint_destroy_rcu() に移動します。これにより、sctp_transport_traverse_process() の rcu_read_lock で ep を安全に保留できます。sctp_endpoint_hold() が true を返した場合、この ep がまだアクティブであり、保留していたもので、ダンプを続行できることを意味します。false を返した場合、この ep は無効であり、rcu_read_unlock の後に解放できるためスキップします。sctp_sock_dump() で sk をロックした後、この ep が tsp->asoc->ep と異なる場合は、ダンプ中に、この asoc が lock_sock() を呼び出す前にピールオフされており、sk をスキップする必要があることを意味します。この ep が tsp->asoc->ep と同じである場合、この asoc ではピールオフは発生せず、lock_sock により、今後も release_sock までピールオフが発生しないことを意味します。ポートの解放は call_rcu() を呼び出す前に sctp_endpoint_destroy() で発生するため、エンドポイントの解放を遅延させてもポートのリリースは遅延しません。また、call_rcu() によってエンドポイントを解放すると、sctp_assocs_seq_show() および sctp_rcv() の asoc->base.sk による sk へのアクセスが安全になります。
Jones 氏にこの問題の提起を感謝します。v1->v2: 変更ログを改善します。Jakub 氏が述べたとおり、kfree(ep) を sctp_endpoint_destroy_rcu() に追加します。(CVE-2021-46929)

- Linux カーネルで、以下の脆弱性が解決されています。net: tw_timer_handler のメモリ解放後使用 (Use After Free) を修正します。Linux 5.4 で次のような現実のパニック問題が見つかりました。バグ: 次のアドレスのページ障害を処理できません: ffffde49a863de28 PGD 7e6fe62067 P4D 7e6fe62067 PUD 7e6fe63067 PMD f51e064067 PTE 0 RIP:
0010:tw_timer_handler+0x20/0x40 呼び出しトレース: <IRQ> call_timer_fn+0x2b/0x120 run_timer_softirq+0x1ef/0x450
__do_softirq+0x10d/0x2b8 irq_exit+0xc7/0xd0 smp_apic_timer_interrupt+0x68/0x120 apic_timer_interrupt+0xf/0x20 この問題は 2017 年以降もスレッド [1] に報告されましたが、残念ながら DCCP の修正後もこの問題は再現される可能性があります。tcp_sk_ops が ipv4_mib_ops の前に登録されているため、ネットの名前空間が破壊されると、tcp_sk_exit_batch の前に ipv4_mib_exit_net が呼び出されます。これは、tcp_sk_ops が pernet_list のリストで ipv4_mib_ops の前にあることを意味します。いくつかの inflight time-wait タイマーが存在する場合、ipv4_mib_exit_net の後に tw_timer_handler の net->mib.net_statistics でメモリ解放後使用 (Use After Free) が起こります。このバグは、コミット f2bf415cfed7 (mib: NET_ADD_STATS_BH に net を追加) では発生しません。これは、net_statistics が、動的な割り当てと解放ではなくグローバル変数であるためです。実際、コミット 61a7e26028b9 (mib: put netstatistics on struct net) は、net 構造体に net 統計を置き、net 名前空間が破壊されると解放するため、バグを導入します。init_ipv4_mibs() を tcp_init() の前面に移動してこのバグを修正し、pr_crit() を panic() に置き換えます。これは、init_ipv4_mibs() が失敗した場合、続行しても意味がないためです。[1] https://groups.google.com/g/syzkaller/c/p1tn-_Kc6l4/m/smuL_FMAAgAJ?pli=1 (CVE-2021-46936)

- Linux カーネルの kernel/cgroup/cgroup-v1.c 関数の cgroup_release_agent_write に脆弱性が見つかりました。特定の状況下で、この欠陥により、cgroups v1 release_agent 機能を使用して権限を昇格させ、名前空間の分離を予期せずバイパスする可能性があります。
(CVE-2022-0492)

Nessus はこれらの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ依存していることに注意してください。

ソリューション

「yum update kernel」を実行してシステムを更新してください。

参考資料

https://alas.aws.amazon.com/AL2/ALAS-2022-1749.html

https://alas.aws.amazon.com/faqs.html

https://alas.aws.amazon.com/cve/html/CVE-2021-4083.html

https://alas.aws.amazon.com/cve/html/CVE-2021-4155.html

https://alas.aws.amazon.com/cve/html/CVE-2021-28711.html

https://alas.aws.amazon.com/cve/html/CVE-2021-28712.html

https://alas.aws.amazon.com/cve/html/CVE-2021-28713.html

https://alas.aws.amazon.com/cve/html/CVE-2021-28714.html

https://alas.aws.amazon.com/cve/html/CVE-2021-28715.html

https://alas.aws.amazon.com/cve/html/CVE-2021-3923.html

https://alas.aws.amazon.com/cve/html/CVE-2021-44733.html

https://alas.aws.amazon.com/cve/html/CVE-2021-46929.html

https://alas.aws.amazon.com/cve/html/CVE-2021-46936.html

https://alas.aws.amazon.com/cve/html/CVE-2022-0492.html

プラグインの詳細

深刻度: High

ID: 157408

ファイル名: al2_ALAS-2022-1749.nasl

バージョン: 1.11

タイプ: local

エージェント: unix

公開日: 2022/2/7

更新日: 2024/4/25

サポートされているセンサー: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, Nessus

リスク情報

VPR

リスクファクター: High

スコア: 8.4

CVSS v2

リスクファクター: Medium

基本値: 6.9

現状値: 5.7

ベクトル: CVSS2#AV:L/AC:M/Au:N/C:C/I:C/A:C

CVSS スコアのソース: CVE-2022-0492

CVSS v3

リスクファクター: High

基本値: 7.8

現状値: 7.2

ベクトル: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:F/RL:O/RC:C

脆弱性情報

CPE: p-cpe:/a:amazon:linux:python-perf, cpe:/o:amazon:linux:2, p-cpe:/a:amazon:linux:kernel-livepatch-4.14.262-200.489, p-cpe:/a:amazon:linux:kernel-headers, p-cpe:/a:amazon:linux:kernel-tools-devel, p-cpe:/a:amazon:linux:perf, p-cpe:/a:amazon:linux:kernel-devel, p-cpe:/a:amazon:linux:python-perf-debuginfo, p-cpe:/a:amazon:linux:kernel-tools-debuginfo, p-cpe:/a:amazon:linux:kernel-tools, p-cpe:/a:amazon:linux:kernel, p-cpe:/a:amazon:linux:perf-debuginfo, p-cpe:/a:amazon:linux:kernel-debuginfo-common-aarch64, p-cpe:/a:amazon:linux:kernel-debuginfo-common-x86_64, p-cpe:/a:amazon:linux:kernel-debuginfo

必要な KB アイテム: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2022/2/4

脆弱性公開日: 2021/1/11

エクスプロイト可能

Metasploit (Docker cgroups Container Escape)

参照情報

CVE: CVE-2021-28711, CVE-2021-28712, CVE-2021-28713, CVE-2021-28714, CVE-2021-28715, CVE-2021-3923, CVE-2021-4083, CVE-2021-4155, CVE-2021-44733, CVE-2021-46929, CVE-2021-46936, CVE-2022-0492

ALAS: 2022-1749