Amazon Linux 2 : kernel (ALASKERNEL-5.10-2022-002)

high Nessus プラグイン ID 160459

概要

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

説明

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

- Wi-Fi Protected Access (WPA、WPA2、およびWPA3) とWired Equiquival Privacy (WEP) を基盤とする802.11規格では、ネットワークへの (再) 接続後に、受信したフラグメントをメモリから消去することが求められていません。適切な状況下で、別のデバイスがWEP、CCMP、またはGCMPを使用して暗号化されたフラグメント化されたフレームを送信する場合、これが悪用されて、任意のネットワークパケットが挿入されたり、ユーザーデータが盗まれたりすることがあります。
(CVE-2020-24586)

- Wi-Fi Protected Access (WPA、WPA2、および WPA3) と Wired Equiquival Privacy (WEP) を基盤とする 802.11 規格では、フレームのすべてのフラグメントを同じキーで暗号化することが求められていません。攻撃者が、別のデバイスがフラグメント化されたフレームを送信し、WEP、CCMP、またはGCMP暗号化キーが定期的に更新される場合、これを悪用して選択されたフラグメントを復号する可能性があります。(CVE-2020-24587)

- Wi-Fi Protected Access (WPA、WPA2、および WPA3) と Wired Equiquival Privacy (WEP) を基盤とする 802.11 規格では、プレーンテキストの QoS ヘッダーフィールドの A-MSDU フラグが認証されていることが求められていません。
攻撃者がこれを悪用して、非 SSP A-MSDUフレームの受信をサポートするデバイス(802.11nの一部として必須)に、任意のネットワークパケットを挿入する可能性があります。(CVE-2020-24588)

- NetBSD 7.1のカーネルに問題が見つかりました。アクセスポイント (AP) は、送信者がAPへの認証に成功していない場合でも、EAPOLフレームを他のクライアントに転送します。計画されたWi-Fiネットワークでこのことが悪用され、接続されているクライアントに対するDoS攻撃 (サービス拒否攻撃) が仕掛けられ、接続されているクライアントの他の脆弱性を悪用しやすくなる可能性があります。(CVE-2020-26139)

- AWUS036H用のALFA Windows 10ドライバー 6.1316.1209に問題が見つかりました。Wi-Fiの実装では、断片化されたTKIPフレームのメッセージの整合性チェック (認証) が検証されません。攻撃者がこれを悪用し、TKIP data-confidentialityプロトコルをサポートするWPAまたはWPA2ネットワークにパケットを挿入し、復号する可能性があります。(CVE-2020-26141)

- Samsung GALAXY S3 i9305 4.4.4デバイスに問題が見つかりました。WEP、WPA、WPA2、およびWPA3の実装では、平文で送信された場合でも2番目 (またはそれ以降) のブロードキャストフラグメントが受け入れられ、フラグメント化されていない完全なフレームとして処理されます。攻撃者がこれを悪用して、ネットワーク設定に関係なく、任意のネットワークパケットを挿入する可能性があります。(CVE-2020-26145)

- Linux カーネル 5.8.9に問題が見つかりました。WEP、WPA、WPA2、およびWPA3の実装では、フラグメントの一部が平文で送信された場合でも、フラグメントが再構築されます。この脆弱性が悪用され、別のデバイスによってフラグメント化されたフレームが送信され、WEP、CCMP、またはGCMPデータ機密性プロトコルが使用される場合に、パケットが挿入されたり、選択されたフラグメントが外部に流出したりする可能性があります。(CVE-2020-26147)

- 5.8.13を通過するLinuxカーネルは、セキュアブート禁止署名データベース (別名dbx) の保護メカニズムを適切に強制しません。これは、certs/blacklist.cおよびcerts/system_keyring.c に影響を与えます。
(CVE-2020-26541)

- Bluetooth Core Specification 2.1〜5.2 の Bluetooth LE および BR/EDR セキュアペアリングにより、近隣の中間攻撃者が、公開鍵の反映および開始デバイスの認証証拠により、(Passkey 認証手順の) ペアリング中に使用された Passkey を識別する可能性があります。このため、この攻撃者は、ペアリングセッションの正しいパスキーを使用して、応答デバイスとの認証されたペアリングを完了する可能性があります。この攻撃方法により、Passkey の値が一度に 1 ビットに決定されます。(CVE-2020-26558)

-BlueZ の不適切なアクセス制御により、認証されたユーザーが隣接アクセスを介した情報開示を可能にする可能性があります。(CVE-2021-0129)

- Linux に問題が見つかりました。KVM で VM_IO | VM_PFNMAP vmas を不適切に処理する KVM は、RO チェックをバイパスし、VMM およびゲストによるアクセスが依然として可能であるにもかかわらず、ページが解放される状態を引き起こす可能性があります。これにより、VM を起動および制御する権限のあるユーザーがメモリのランダムなページを読み書きすることができ、ローカルの権限昇格に至る可能性があります。(CVE-2021-22543)

-Linux xen-netback でのゲストによるメモリ解放後使用の誘発。悪意のある、あるいはバグのあるネットワーク PV フロントエンドは、フロントエンドが不正なパケットを送信したことに反応して、Linux netback にインターフェースの無効化と、キュー 0 に関連する受信カーネルスレッドを終了させる可能性があります。このようなカーネルスレッドの終了は、バックエンドが破壊されたときにLinuxのネットバックではメモリ解放後使用が発生します。これは、キュー0に関連するカーネルスレッドがすでに終了しているため、kthread_stopの呼び出しが古いポインターに対して実行されるためです。
(CVE-2021-28691)

- この脆弱性により、ローカルの攻撃者が、影響を受けるLinuxカーネル 5.11.15のインストールの際に権限を昇格する可能性があります。この脆弱性を悪用するには、攻撃者はまず標的のシステムで権限の低いコードを実行する機能を取得する必要があります。eBPFプログラムの処理に、特定の欠陥が存在します。この問題の原因は、ユーザー指定のeBPFプログラムを実行する前の検証が適切でないにあります。
攻撃者がこの脆弱性を利用して、権限を昇格させ、カーネルのコンテキストで任意のコードを実行する可能性があります。Was ZDI-CAN-13661。(CVE-2021-31440)

- 5.12.2 までの Linux カーネルの net/bluetooth/hci_request.c には競合状態があり、HCI コントローラーが除去されます。(CVE-2021-32399)

- 5.12.4より前の Linux カーネルのnet/bluetooth/hci_event.c には、hci_chan (別名CID-5c4c8c954409) を破壊する際のメモリ解放後使用 (Use-After-Free) があります。これは、任意の値の書き込みにつながります。(CVE-2021-33034)

- 5.12.13 より前の Linux カーネルの kernel/bpf/verifier.c において、ブランチが誤って予測される可能性があり (例: 型の取り違えによる)、権限のない BPF プログラムはサイドチャネル攻撃を介して任意のメモリロケーションを読み取る可能性があります (別名 CID-9183671af6db)。(CVE-2021-33624)

- 5.12.10までの Linux カーネル内の net/can/bcm.c により、データ構造の一部が初期化されていないため、ローカルユーザーがカーネルスタックメモリの機密情報を入手できます。(CVE-2021-34693)

- Linux カーネルの eBPF RINGBUF bpf_ringbuf_reserve() 関数は、割り当てられたサイズが ringbuf サイズより小さいことをチェックしなかったため、攻撃者がカーネル内で領域外書き込みを実行し、任意のコードを実行する可能性があります。この問題は、コミット 4b81ccebaeee (bpf、ringbuf: ringbuf より大きいバッファの予約を拒否) (v5.13-rc4) を介して修正され、v5.12.4、v5.11.21、および v5.10.37 の安定版 (stable) カーネルにバックポートされました。これは、457f44363a88 (bpf: BPF リングバッファおよびそのための検証サポートを実装) (v5.8-rc1) を介して導入されました。(CVE-2021-3489)

- Linux カーネルのビット単位の演算 (AND、OR、XOR) の eBPF ALU32境界追跡で、32 ビットの境界が適切に更新されませんでした。このため、Linux カーネルの領域外読み取りおよび書き込みが発生し、任意コード実行に至る可能性がありました。この問題は、コミット 049c4e13714e (bpf: ビット単位の alu32 const subreg 境界追跡を修正) (v5.13-rc4) で修正され、v5.12.4、v5.11.21、および v5.10.37 で安定したカーネルへバックポートされました。AND/OR の問題は、コミット 3f50f132d840 (bpf: Verifier、明示的な ALU32 境界追跡) (5.7-rc1) によって導入され、XOR バリアントは、2921c90d4718 (bpf: xor で検証機能の失敗を修正します) (5.10-rc1) によって導入されました。(CVE-2021-3490)

- Linux カーネルの io_uring サブシステムにより、PROVIDE_BUFFERS 操作で MAX_RW_COUNT 制限がバイパスされ、/proc/<PID>/mem の読み取り時に mem_rw で負の値が使用される可能性がありました。
これは、カーネルで任意のコードの実行につながるヒープオーバーフローを作成するために使用される可能性がありました。これは、コミット d1f82808877b (io_uring: 提供バッファで MAX_RW_COUNT より大きい長さを切り捨てる) (v5.13-rc1) を通して対処され、v5.12.4、v5.11.21、および v5.10.37 で安定カーネルへバックポートされました。これは、ddf0322db79c で導入されました (io_uring: IORING_OP_PROVIDE_BUFFERS を追加) (v5.7-rc1)。(CVE-2021-3491)

- 5.12.0-rc4 より前のバージョンの Linux カーネルの f2fs モジュールの fs/f2fs/node.c に、領域外 (OOB) メモリアクセスの欠陥が見つかりました。領域チェックに失敗すると、ローカルの攻撃者が領域外メモリにアクセスし、システムクラッシュや内部カーネル情報の漏洩を引き起こす可能性があります。この脆弱性が最大の脅威となるのは、システムの可用性です。(CVE-2021-3506)

- Enclaves VMがenclaveファイル記述子でクローズを強制する方法に、Nitro EnclavesカーネルドライバーのNULLポインターデリファレンスの欠陥が見つかりました。ホストマシンのローカルユーザーがこの欠陥を利用して、システムをクラッシュさせたり、システム上で権限を昇格したりする可能性があります。(CVE-2021-3543)

-ユーザーが悪意のあるHCI TTY Bluetoothデバイスをアタッチする際に、LinuxカーネルHCIデバイス初期化サブシステムに二重解放のメモリ破損の欠陥が見つかりました。ローカルユーザーがこの欠陥を使用して、システムをクラッシュする可能性があります。この欠陥は 3.13 から始まるすべての Linux カーネルバージョンに影響を与えます。(CVE-2021-3564)

- Linux カーネル HCI サブシステムの関数 hci_sock_bound_ioctl() のメモリ解放後使用 (Use After Free) が、ユーザーが ioct HCIUNBLOCKADDR を呼び出す方法、または hci_sock_blacklist_add()、hci_sock_blacklist_del()、hci_get_conn_info()、hci_get_auth_info() の呼び出しの 1 つとともに hci_unregister_dev() 呼び出しの競合状態をトリガーする方法で見つかりました。権限のあるローカルユーザーはこの欠陥を利用して、システムをクラッシュしたり、システム上で権限を昇格したりする可能性があります。この欠陥は、5.13-rc5 より前の Linux カーネルバージョンに影響を与えます。(CVE-2021-3573)

- 5.12.10 より前の Linux カーネルの net/nfc/llcp_sock.c では、bind 呼び出しの特定のエラータイプ後に getsockname 呼び出しを行うことによって、ローカルの権限のないユーザーがサービス拒否を引き起こすことが可能です。(CVE-2021-38208)

- Linux カーネルでは、次の脆弱性が解決されています。HID: usbhid: hid_submit_ctrl の情報漏洩を修正します。hid_submit_ctrl() では、レポートの長さ計算の方法に、report->size がゼロになる可能性が考慮されません。syzkaller 再生装置を実行している場合、サイズが 0 のレポートにより、hid_submit_ctrl) が transfer_buffer_length を 16384 として計算します。この urb が usb コアレイヤーに渡されると、KMSAN が 16384 バイトの情報漏洩を報告します。これを修正するには、まず hid_report_len() を修正し、除算に DIV_ROUND_UP を使用してレポートサイズがゼロの場合に対応させます。次にこれを hid_submit_ctrl() から呼び出します。(CVE-2021-46906)

- Linux カーネルでは、次の脆弱性が解決されています: dm rq: テーブルのロードが失敗した後の dev remove の blk_mq_tag_set の blk_mq_tag_set の二重解放を修正します。リクエストベースのマップされたデバイスの device-mapper テーブルをロードする際、デバイスの blk_mq_tag_set の割り当て / 初期が失敗し、続くデバイスの削除で二重解放が引き起こされます。例 (dmesg): device-mapper: core: リクエストベースの dm-mq でマップされたデバイスの device-mapper 用のキューを初期化できません: ioctl: 新しいテーブルのデバイスキューを設定できません。
仮想カーネルアドレス空間でカーネルポインターデリファレンスを処理できません。エラーが発生したアドレス:
0305e098835de000 TEID: 0305e098835de803。カーネル ASCE 使用中のホーム空間モードの障害。
AS:000000025efe0007 R3:0000000000000024 Oops: 0038 ilc:3 [#1] SMP Modules linked in: ... 多数のモジュール ... Supported: Yes, External CPU: 0 PID: 7348 Comm: multipathd Kdump: loaded Tainted: G W X 5.3.18-53-default #1 SLE15-SP3 Hardware name: IBM 8561 T01 7I2 (LPAR) Krnl PSW : 0704e00180000000 000000025e368eca (kfree+0x42/0x330) R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 RI:0 EA:3 Krnl GPRS: 000000000000004a 000000025efe5230 c1773200d779968d 0000000000000000 000000025e520270 000000025e8d1b40 0000000000000003 00000007aae10000 000000025e5202a2 0000000000000001 c1773200d779968d 0305e098835de640 00000007a8170000 000003ff80138650 000000025e5202a2 000003e00396faa8 Krnl Code:
000000025e368eb8: c4180041e100 lgrl %r1,25eba50b8 000000025e368ebe: ecba06b93a55 risbg %r11,%r10,6,185,58 #000000025e368ec4: e3b010000008 ag %r11,0(%r1) >000000025e368eca: e310b0080004 lg %r1,8(%r11) 000000025e368ed0: a7110001 tmll %r1,1 000000025e368ed4: a7740129 brc 7,25e369126 000000025e368ed8:
e320b0080004 lg %r2,8(%r11) 000000025e368ede: b904001b lgr %r1,%r11 Call Trace: [<000000025e368eca>] kfree+0x42/0x330 [<000000025e5202a2>] blk_mq_free_tag_set+0x72/0xb8 [<000003ff801316a8>] dm_mq_cleanup_mapped_device+0x38/0x50 [dm_mod] [<000003ff80120082>] free_dev+0x52/0xd0 [dm_mod] [<000003ff801233f0>] __dm_destroy+0x150/0x1d0 [dm_mod] [<000003ff8012bb9a>] dev_remove+0x162/0x1c0 [dm_mod] [<000003ff8012a988>] ctl_ioctl+0x198/0x478 [dm_mod] [<000003ff8012ac8a>] dm_ctl_ioctl+0x22/0x38 [dm_mod] [<000000025e3b11ee>] ksys_ioctl+0xbe/0xe0 [<000000025e3b127a>] __s390x_sys_ioctl+0x2a/0x40 [<000000025e8c15ac>] system_call+0xd8/0x2c8 Last Breaking-Event-Address: [<000000025e52029c>] blk_mq_free_tag_set+0x6c/0xb8 Kernel panic - not syncing: Fatal exception: panic_on_oops。blk_mq_tag_set の割り当て / 初期化が dm_mq_init_request_queue() でエラーになったとき、初期化前の状態に戻され / 解放されますがポインタは NULL にリセットされません。それで、その後 dev_remove() が dm_mq_cleanup_mapped_device() に入っていくと、ポインタを見て再度初期化前の状態に戻し解放しようとします。dm_mq_init_request_queue() のエラー処理でポインターを NULL に設定することで、これを修正します。また、dm_mq_cleanup_mapped_device() で NULL に設定します。(CVE-2021-46938)

- Linux カーネルで、以下の脆弱性が解決されています: tracing: 決してブロックしないために、trace_clock_global() を再構築します。リングバッファ再帰検出の修正により、中断 / 再開テストを実行するときにマシンがハングアップすることが報告されています。次のバックトレースは、その場合のデバッグから抽出されました: Call Trace: trace_clock_global+0x91/0xa0 __rb_reserve_next+0x237/0x460 ring_buffer_lock_reserve+0x12a/0x3f0 trace_buffer_lock_reserve+0x10/0x50 __trace_graph_return+0x1f/0x80 trace_graph_return+0xb7/0xf0 ? trace_clock_global+0x91/0xa0 ftrace_return_to_handler+0x8b/0xf0 ? pv_hash+0xa0/0xa0 return_to_handler+0x15/0x30 ? ftrace_graph_caller+0xa0/0xa0 ? trace_clock_global+0x91/0xa0 ? __rb_reserve_next+0x237/0x460 ? ring_buffer_lock_reserve+0x12a/0x3f0 ? trace_event_buffer_lock_reserve+0x3c/0x120 ? trace_event_buffer_reserve+0x6b/0xc0 ? trace_event_raw_event_device_pm_callback_start+0x125/0x2d0 ? dpm_run_callback+0x3b/0xc0 ? pm_ops_is_empty+0x50/0x50 ? platform_get_irq_byname_optional+0x90/0x90 ? trace_device_pm_callback_start+0x82/0xd0 ? dpm_run_callback+0x49/0xc0 With the following RIP: RIP:
0010:native_queued_spin_lock_slowpath+0x69/0x200。再帰検出の修正により、トレース中に単一の再帰が発生する可能性があるため、trace_clock_global() がスピンロックを取得してから、再度取得しようとしてしまいます: ring_buffer_lock_reserve() { trace_clock_global() { arch_spin_lock() {queued_spin_lock_slowpath() { /* ロックがかかりました */ (他の何かが関数グラフトレーサーによってトレースされます) ring_buffer_lock_reserve() { trace_clock_global() { arch_spin_lock() { queued_spin_lock_slowpath() { /* デッドロック! */ トレースは「決して」ブロックすべきではありません。上記のような奇妙なロックアップを引き起こす可能性があるためです。trace_clock_global() コードを に再構成します。記録された prev_time を更新するために単にロックを取得する代わりに、単にそれを使用します。2 つの異なる CPU で発生する 2 つのイベントが同時にこれを呼び出すため、どちらが先に実行されるかは問題ではありません。trylock を使用して prev_time を更新するためのロックを取得します。失敗した場合は、次回再試行してください。取得に失敗した場合は、他の何かがすでに更新していることを意味します。Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=212761 (CVE-2021-46939)

- Linux カーネルで、以下の脆弱性が解決されています: md/raid1: 失敗した書き込みリクエストを終了する際に失敗を適切に表示。このパッチは、ビットマップを使用する raid1 配列のデータ破損バグに対処します。この修正がないと、失敗した I/O のビットマップビットがクリアされてしまいます。raid1_end_write_request の失敗レグにあるため、リクエストを再試行する (R1BIO_WriteError) か失敗する (R1BIO_Degraded) 必要があります。(CVE-2021-46950)

- Linux カーネルで、次の脆弱性が解決されています: NFS: fs_context: UDP retrans を検証してシフト領域外を防止。xprt_calc_majortimeo() のシフト領域外を修正します。これは、nfs マウントに渡されるガベージタイムアウト (retrans) マウントオプションによって発生します。この場合は syzkaller から渡されます。プロトコルが XPRT_TRANSPORT_UDP である場合、「retrans」は 64 ビット長整数のシフト値であるため、「retrans」を 64 以上にすることはできません。64 以上の場合、マウントは失敗し、エラーが返されます。(CVE-2021-46952)

- Linux カーネルでは、次の脆弱性が解決されています。ACPI: GTDT: watchdow プローブエラーでは割り込みマッピングは破損されません。無効なファームウェアプロパティのためにドライバープローブが失敗する場合、GTDT ドライバーは、以前にマップした割り込みのマッピングを解除します。ただし、割り込みのマッピングが実際に成功したかどうかはチェックされません。さらに、GIC SGI 範囲と重複する不正な割り込み番号がファームウェアによって報告された場合、IPI のマッピングが解除され、Dann Frazier 氏による報告のとおり続いて fireworks が発生する可能性があります。ドライバーを修正して動作をわずかに正し、マッピング解除の前に割り込みがマッピングされているかどうかを実際にチェックします。(CVE-2021-46953)

- Linux カーネルでは、次の脆弱性が解決されています: irqchip/gic-v3: 偽の割り込みを処理する際に irqs を有効にしない。バックポートを引き起こすに疑似 NMI パッチがある 4.19 カーネルを実行中、次のエラーをトリガーします: [ 14.816231] ------------[ cut here ]------------ [ 14.816231] kernel BUG at irq.c:99! [ 14.816232] Internal error: Oops - BUG: 0 [#1] SMP [ 14.816232] Process swapper/0 (pid:
0, stack limit = 0x(____ptrval____)) [ 14.816233] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 4.19.95.aarch64 #14 [ 14.816233] Hardware name: evb (DT) [ 14.816234] pstate: 80400085 (Nzcv daIf +PAN
-UAO) [ 14.816234] pc : asm_nmi_enter+0x94/0x98 [ 14.816235] lr : asm_nmi_enter+0x18/0x98 [ 14.816235] sp : ffff000008003c50 [ 14.816235] pmr_save: 00000070 [ 14.816237] x29: ffff000008003c50 x28:
ffff0000095f56c0 [ 14.816238] x27: 0000000000000000 x26: ffff000008004000 [ 14.816239] x25:
00000000015e0000 x24: ffff8008fb916000 [ 14.816240] x23: 0000000020400005 x22: ffff0000080817cc [14.816241] x21: ffff000008003da0 x20: 0000000000000060 [ 14.816242] x19: 00000000000003ff x18:
ffffffffffffffff [ 14.816243] x17: 0000000000000008 x16: 003d090000000000 [ 14.816244] x15:
ffff0000095ea6c8 x14: ffff8008fff5ab40 [ 14.816244] x13: ffff8008fff58b9d x12: 0000000000000000 [14.816245] x11: ffff000008c8a200 x10: 000000008e31fca5 [ 14.816246] x9 : ffff000008c8a208 x8 :
000000000000000f [ 14.816247] x7 : 0000000000000004 x6 : ffff8008fff58b9e [ 14.816248] x5 :
0000000000000000 x4 : 0000000080000000 [ 14.816249] x3 : 0000000000000000 x2 : 0000000080000000 [14.816250] x1 : 0000000000120000 x0 : ffff0000095f56c0 [ 14.816251] Call trace: [ 14.816251] asm_nmi_enter+0x94/0x98 [ 14.816251] el1_irq+0x8c/0x180 (IRQ C) [ 14.816252] gic_handle_irq+0xbc/0x2e4 [14.816252] el1_irq+0xcc/0x180 (IRQ B) [ 14.816253] arch_timer_handler_virt+0x38/0x58 [ 14.816253] handle_percpu_devid_irq+0x90/0x240 [ 14.816253] generic_handle_irq+0x34/0x50 [ 14.816254]
__handle_domain_irq+0x68/0xc0 [ 14.816254] gic_handle_irq+0xf8/0x2e4 [ 14.816255] el1_irq+0xcc/0x180 (IRQ A) [ 14.816255] arch_cpu_idle+0x34/0x1c8 [ 14.816255] default_idle_call+0x24/0x44 [ 14.816256] do_idle+0x1d0/0x2c8 [ 14.816256] cpu_startup_entry+0x28/0x30 [ 14.816256] rest_init+0xb8/0xc8 [ 14.816257] start_kernel+0x4c8/0x4f4 [ 14.816257] Code: 940587f1 d5384100 b9401001 36a7fd01 (d4210000) [ 14.816258] Modules linked in: start_dp(O) smeth(O) [ 15.103092] ---[ end trace 701753956cb14aa8 ]--- [ 15.103093] Kernel panic - not syncing: Fatal exception in interrupt [ 15.103099] SMP: stopping secondary CPUs [15.103100] Kernel Offset: disabled [ 15.103100] CPU features: 0x36,a2400218 [ 15.103100] Memory Limit:
none which is cause by a 'BUG_ON(in_nmi())' in nmi_enter(). 呼び出しトレースから、3 つの割り込み (上記の A、B、C) を見つけることができます。割り込み (A) は (B) によって横取りされ、さらに (C) によって割り込みを受けます。
その後の調査では、(B) の結果 nmi_enter() が呼び出されていますが、実際には偽の割り込みであることが示されています。さらに、割り込みは (B) のコンテキストで再有効化され、(C) は NMI の優先度で発生します。最終的にはネスト化された NMI の状況に陥ります。これは、絶対に処理したくない (また処理できない) ものです。ここでのバグは、偽造の割り込みによって状態が変更されてはならず、中断されたコンテキストに戻る必要があるということです。GICv3 ハンドラーの偽造割り込みの処理をできるだけ早く移動することで、この問題を修正します。[maz: コミットメッセージを書き直しました。Fixes: tag] (CVE-2021-46961)

- Linux カーネルで、以下の脆弱性が解決されています: sched: uclam の領域外アクセスを修正します。Util-clam はパフォーマンス上の理由から、クランプ値に基づいてタスクを異なるバケットに配置します。
ただし、バケットのサイズは現在、四捨五入された除算を使用して計算されているため、一部の設定で off-by-one エラーが発生する可能性があります。たとえば、バケット数が 20 の場合、バケットサイズは 1024/20=51 になります。クランプが 1024 のタスクは、バケット ID 1024/51=20 にマッピングされます。残念ながら、正しいインデックスは範囲 [0,19] にあるため、領域外のメモリアクセスにつながります。バケット ID を制限して問題を修正します。
(CVE-2021-46993)

- Linux カーネルで、以下の脆弱性が解決されています: netfilter: nftables: 新しいオブジェクトのユーザーデータエラーパスからの memleak を修正します。ユーザーデータの割り当てが失敗した場合は、オブジェクト名を解放します。(CVE-2021-46996)

- Linux カーネルでは、次の脆弱性が解決されています: mm: memcontrol: slab: 解放 memcg パッチシリーズへの参照の取得を修正します。obj_cgroup API を使用して kmem ページ、v5 に適用します。Roman シリーズ以降。新しい cgroup slab メモリコントローラーが適用されます。すべての slab オブジェクトに obj_cgroup の新しい API が適用されます。新しい API は、構造体 obj_cgroup を導入して slab オブジェクトに適用します。これは、長寿命オブジェクトがメモリで元のメモリ cgroup を固定するのを防ぎます。しかし、新しい API が適用されない一部のコーナーオブジェクト (SLUB の order-1 ページよりも大きな割り当てなど) がまだあります。これらのオブジェクト (バディーアロケーターから直接割り当てられたページを含む) は、メモリ cgroup への参照を依然として保持している kmem ページとして適用されます。例:カーネルスタックのサイズは 2 ページよりも大きくなる可能性があるため (例: x86_64 または arm64 での 16KB)、カーネルスタックは kmem ページとして適用されることがわかっています。スレッドを作成し (スレッドスタックがメモリ cgroup A に適用されてると仮定します)、それからメモリ cgroup A からメモリ cgroup B に移動した場合、スレッドのカーネルスタックはメモリ cgroup A への参照を保持しているため、cgroup A を削除した場合でも、スレッドはメモリ cgroup A をメモリに固定します。このシナリオを確認するには、次のスクリプトを使用します。システムに 500 の無効な cgroup が追加されていることがわかります (これは現実の問題ではなく、大きな kmalloc が、メモリ内のメモリ cgroup を固定できる kmem ページとして適用されることを示すためのスクリプトにすぎません)。#!/bin/bash cat /proc/cgroups | grep memory cd /sys/fs/cgroup/memory echo 1 > memory.move_charge_at_immigrate in range{1..500} do mkdir kmem_test echo $$ > kmem_test/cgroup.procs sleep 3600 & echo $$ > cgroup.procs echo 「cat kmem_test/cgroup.procs」> cgroup.procs rmdir kmem_test が完了しました cat /proc/cgroups | grep memory。このパッチセットは、obj_cgroup の API を使用することで、それらの kmem ページにメモリ cgroup への参照をドロップさせることを目的としています。最後に、上記のテストスクリプトを実行した場合、「無効の cgroup」の数が増加しないことがわかります。このパッチ (of 7): rcu_read_lock/unlock のみが、memcg が解放されないことを保証できますが、memcg に対する css_get (キャッシュされた memcg が変更された場合は refill_ stock にあります) の成功は保証できません。rcu_read_lock() memcg = obj_cgroup_memcg(old) __memcg_kmem_uncharge(memcg) refill_stock(memcg) if (stock->cached != memcg) // css_get can change the ref counter from 0 back to 1. css_get(&memcg->css) rcu_read_unlock()。この修正は、コミット: eefbfa7fd678 (mm: memcg/slab: obj_cgroup_charge の use after free を修正) によく似ています。呼び出す前に、__memcg_kmem_uncharge() に渡される memcg への参照を保持することで、これを修正します。
__memcg_kmem_uncharge()。(CVE-2021-47011)

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

ソリューション

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

参考資料

https://alas.aws.amazon.com/AL2/ALASKERNEL-5.10-2022-002.html

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

https://alas.aws.amazon.com/cve/html/CVE-2020-24586.html

https://alas.aws.amazon.com/cve/html/CVE-2020-24587.html

https://alas.aws.amazon.com/cve/html/CVE-2020-24588.html

https://alas.aws.amazon.com/cve/html/CVE-2020-26139.html

https://alas.aws.amazon.com/cve/html/CVE-2020-26141.html

https://alas.aws.amazon.com/cve/html/CVE-2020-26145.html

https://alas.aws.amazon.com/cve/html/CVE-2020-26147.html

https://alas.aws.amazon.com/cve/html/CVE-2020-26541.html

https://alas.aws.amazon.com/cve/html/CVE-2020-26558.html

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

プラグインの詳細

深刻度: High

ID: 160459

ファイル名: al2_ALASKERNEL-5_10-2022-002.nasl

バージョン: 1.11

タイプ: local

エージェント: unix

公開日: 2022/5/2

更新日: 2024/4/25

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

リスク情報

VPR

リスクファクター: Critical

スコア: 9.2

CVSS v2

リスクファクター: High

基本値: 7.2

現状値: 6.3

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

CVSS スコアのソース: CVE-2021-3543

CVSS v3

リスクファクター: High

基本値: 8.8

現状値: 8.4

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

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

CVSS スコアのソース: CVE-2021-3491

脆弱性情報

CPE: p-cpe:/a:amazon:linux:bpftool, p-cpe:/a:amazon:linux:bpftool-debuginfo, p-cpe:/a:amazon:linux:kernel, p-cpe:/a:amazon:linux:kernel-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-devel, p-cpe:/a:amazon:linux:kernel-headers, p-cpe:/a:amazon:linux:kernel-tools, p-cpe:/a:amazon:linux:kernel-tools-debuginfo, p-cpe:/a:amazon:linux:kernel-tools-devel, p-cpe:/a:amazon:linux:perf, p-cpe:/a:amazon:linux:perf-debuginfo, p-cpe:/a:amazon:linux:python-perf, p-cpe:/a:amazon:linux:python-perf-debuginfo, cpe:/o:amazon:linux:2

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

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

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

パッチ公開日: 2022/1/20

脆弱性公開日: 2020/10/2

エクスプロイト可能

Core Impact

Metasploit (Linux eBPF ALU32 32-bit Invalid Bounds Tracking LPE)

参照情報

CVE: CVE-2020-24586, CVE-2020-24587, CVE-2020-24588, CVE-2020-26139, CVE-2020-26141, CVE-2020-26145, CVE-2020-26147, CVE-2020-26541, CVE-2020-26558, CVE-2021-0129, CVE-2021-22543, CVE-2021-28691, CVE-2021-31440, CVE-2021-32399, CVE-2021-33034, CVE-2021-33624, CVE-2021-34693, CVE-2021-3489, CVE-2021-3490, CVE-2021-3491, CVE-2021-3506, CVE-2021-3543, CVE-2021-3564, CVE-2021-3573, CVE-2021-38208, CVE-2021-46906, CVE-2021-46938, CVE-2021-46939, CVE-2021-46950, CVE-2021-46952, CVE-2021-46953, CVE-2021-46961, CVE-2021-46993, CVE-2021-46996, CVE-2021-47011

IAVA: 2021-A-0222-S, 2021-A-0223-S