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

high Nessus プラグイン ID 160443

概要

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

説明

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

- Linux カーネルに脆弱性が見つかりました。llcp_sock_bind() で refcount が漏えいして、メモリ解放後使用 (Use-After-Free) が引き起こされ、権限昇格が発生する可能性があります。(CVE-2020-25670)

- Linux カーネルに脆弱性が見つかりました。llcp_sock_connect() で refcount が漏洩して、メモリ解放後使用 (Use-After-Free) が引き起こされ、権限昇格が発生する可能性があります。(CVE-2020-25671)

- llcp_sock_connectのLinux カーネルに、メモリリークの脆弱性が見つかりました(CVE-2020-25672)

- Linuxカーネルに脆弱性が見つかりました。llcp_sock_connect()で非ブロックソケットが漏洩して、最終的にはシステムがハングアップします。 (CVE-2020-25673)

-5.12-rc8より前のLinuxカーネルSCTPソケット (net/sctp/socket.c) の競合状態により、ネットワークサービスのコンテキストまたは権限のないプロセスからのカーネル権限昇格につながる可能性があります。sock_net(sk)->sctp.addr_wq_lockなしでsctp_destroy_sockが呼び出された場合、適切なロックがない状態で、要素がauto_asconf_splistリストから削除されます。これが悪用され、ネットワークサービス権限を持つ攻撃者が root への権限昇格が行われる、あるいは一部の SCTP ソケットの作成を拒否する BPF_CGROUP_INET_SOCK_CREATE が添付されている場合、権限のないユーザーのコンテキストから権限昇格が行われる可能性があります。(CVE-2021-23133)

- 5.11.xまでのLinux カーネルで問題が発見されました。kernel/bpf/verifier.c は、ポインター計算に対して望ましくない領域外の投機を実行し、これによって、サイドチャネル攻撃が引き起こされる可能性があります。この攻撃ではSpectreの緩和策が無効にされ、カーネルメモリから機密情報が取得されます。具体的には、一連のポインター演算操作で、最初の操作で実行されたポインターの変更が、後続の操作を制限するときに正しく考慮されません。(CVE-2021-29155)

-5.12.1までのLinux カーネルにおいて、kernel/bpf/verifier.cが望ましくない投機的なロードを行い、サイドチャネル攻撃を介して、スタックの内容を開示することになります (別名CID-801c6058d14a)。特に懸念されるのは、投機的ロードに対してBPFスタック領域を保護しないことです。また、BPF スタックには、初期化されていないデータが含まれており、カーネルによって以前に操作された機密情報を示す可能性があります。(CVE-2021-31829)

- 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より前のバージョンの Linux カーネルで欠陥が見つかりました。KVM APIのinternal.ndataの値が配列インデックスにマッピングされるため、ユーザープロセスをいつでも更新でき、領域外書き込みが引き起こされる可能性があります。この脆弱性が最大の脅威となるのは、データの整合性とシステムの可用性です。
(CVE-2021-3501)

- Linux カーネルでは、次の脆弱性が解決されています。net: hso: tty デバイス登録解除中の null-ptr-deref を修正します。複数の tty が同じマイナー番号を要求しようと試みるため、同じデバイスでの登録解除の重複が発生します。最初の登録解除は成功しますが、次の登録解除では null-ptr-deref が発生します。get_free_serial_index() 関数から利用可能なマイナー番号が返されますが、すぐには割り当てられません。割り当ては、後で呼び出し元が行います。しかし、この割り当ての前は、get_free_serial_index() を呼び出すと、同じマイナー番号が返されます。これを修正するには、get_free_serial_index を修正して、該当するマイナー番号が判明したら直ちにそれを割り当て、その機能をより適切に示すように名前を get_minor() に変更します。同様に、set_serial_by_index() の名前を release_minor() に変更し、指定された hso_serial のマイナー番号を解放するよう変更します。すべての obtain_minor() には、対応する release_minor() 呼び出しが必要です。(CVE-2021-46904)

- Linux カーネルでは、次の脆弱性が解決されています。net: hso: 切断回帰の NULL-deref を修正します。コミット 8a12f8836145 (net: hso: tty デバイス登録解除中の null-ptr-deref を修正) は、syzbot によって報告された、際どいマイナーな割り当てを修正しましたが、代わりに、毎回の切断に対して無条件の NULL ポインターデリファレンスが導入されました。具体的には、hso_serial_tty_unregister() によってマイナーが解放された後は、シリアルデバイステーブルにアクセスできなくなります。(CVE-2021-46905)

- Linux カーネルでは、次の脆弱性が解決されています: bpf: 混合した署名付き境界演算に対して適切な権限フラグを使用します。Spectre v1 マスキング緩和策のため、混合した署名付き境界を持つ不明なスカラーを追加することを禁止します。したがって、これには allow_ptr_leaks の代わりに bypass_spec_v1 フラグも必要です。
(CVE-2021-46908)

- Linux カーネルで、次の脆弱性は解決されています: net: 非初期化 netns で tcp_allowed_congestion_control を読み取り専用にします。現在、tcp_allowed_congestion_control はグローバルで書き込み可能です。任意のネット名前空間でこれに書き込むと、他のすべてのネット名前空間に漏洩します。
tcp_available_congestion_control および tcp_allowed_congestion_control は、NULL データポインターを持つ ipv4_net_table (per-netns sysctl テーブル) の唯一の sysctl です。ハンドラー (proc_tcp_available_congestion_control および proc_allowed_congestion_control) には、struct net を参照する他の方法がありません。したがって、グローバルに動作します。ipv4_net_table は指定イニシャライザを使用しないため、この 1 つの不適切なテーブルエントリを簡単に修正する方法はありません。ただし、データポインター更新ロジックは NULL ポインターに適用されるべきではないため、代わりにこれらのエントリを強制的に読み取り専用にします。これらの sysctl は、以前は ipv4_table (init-net のみ) に存在していましたが、おそらく tcp_allowed_congestion_control が書き込み可能であることを認識せずに per-net ipv4_net_table に移動されたため漏洩が発生しました。そのコミットの目的は、どの輻輳アルゴリズムが利用可能または許可されているかを知る (つまり読み取る) ことのみであったため、この読み取り専用ソリューションで十分です。最近のコミット 31c4d2f160eb で追加されたロジック: (net: sysctls の net 名前空間分離を確実にする) は、NULL データポインターをチェックせず、またできません。これは、他のテーブルエントリ (例: /proc/sys/net/netfilter/nf_log/) に .data=NULL があるためですが、他のメソッド (.extra2) を使用して net 構造にアクセスします。(CVE-2021-46912)

- Linux カーネルで、次の脆弱性が解決されています: 中断/再開での不均衡なデバイスの有効化/無効化修正します。__ixgbe_shutdown() の中で呼び出される pci_disable_device() は dev->enable_cnt を 1 ずつ減らします。pci_enable_device_mem() は dev->enable_cnt を 1 ずつ増やしますが、コミット 6f82b2558735 (ixgbe: 汎用電源管理の使用) で ixgbe_resume() から削除されました。これにより、バランスのとれていない増減が発生しました。それで、pci_enable_device_mem() を戻します。次の呼び出しトレースを修正します. ixgbe 0000:17:00.1:
すでに無効になっているデバイスの無効化。Call Trace: __ixgbe_shutdown+0x10a/0x1e0 [ixgbe] ixgbe_suspend+0x32/0x70 [ixgbe] pci_pm_suspend+0x87/0x160 ? pci_pm_freeze+0xd0/0xd0 dpm_run_callback+0x42/0x170
__device_suspend+0x114/0x460 async_suspend+0x1f/0xa0 async_run_entry_fn+0x3c/0xf0 process_one_work+0x1dd/0x410 worker_thread+0x34/0x3f0 ? cancel_delayed_work+0x90/0x90 kthread+0x14c/0x170 ? kthread_park+0x90/0x90 ret_from_fork+0x1f/0x30 (CVE-2021-46914)

- Linux カーネルでは、次の脆弱性が解決されています。netfilter: nft_limit: nft_limit_init div_u64() が u64 を u32 で除算する除算エラーを回避します。nft_limit_init() は u64 を u64 で除算するので、適切な math 関数 (div64_u64) を使用します。除算エラー: 0000 [#1] PREEMPT SMP KASAN CPU: 1 PID: 8390 Comm: syz-executor188 Not tainted 5.12.0-rc4-syzkaller #0 ハードウェア名: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:div_u64_rem include/linux/math64.h:28 [inline] RIP: 0010:div_u64 include/linux/math64.h:127 [inline] RIP: 0010:nft_limit_init+0x2a2/0x5e0 net/netfilter/nft_limit.c:85 Code: ef 4c 01 eb 41 0f 92 c7 48 89 de e8 38 a5 22 fa 4d 85 ff 0f 85 97 02 00 00 e8 ea 9e 22 fa 4c 0f af f3 45 89 ed 31 d2 4c 89 f0 <49> f7 f5 49 89 c6 e8 d3 9e 22 fa 48 8d 7d 48 48 b8 00 00 00 00 00 RSP: 0018:ffffc90009447198 EFLAGS: 00010246 RAX: 0000000000000000 RBX: 0000200000000000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffffffff875152e6 RDI: 0000000000000003 RBP:
ffff888020f80908 R08: 0000200000000000 R09: 0000000000000000 R10: ffffffff875152d8 R11: 0000000000000000 R12: ffffc90009447270 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 FS:
000000000097a300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033 CR2: 00000000200001c4 CR3: 0000000026a52000 CR4: 00000000001506e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
0000000000000400 呼出しトレース: nf_tables_newexpr net/netfilter/nf_tables_api.c:2675 [inline] nft_expr_init+0x145/0x2d0 net/netfilter/nf_tables_api.c:2713 nft_set_elem_expr_alloc+0x27/0x280 net/netfilter/nf_tables_api.c:5160 nf_tables_newset+0x1997/0x3150 net/netfilter/nf_tables_api.c:4321 nfnetlink_rcv_batch+0x85a/0x21b0 net/netfilter/nfnetlink.c:456 nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:580 [inline] nfnetlink_rcv+0x3af/0x420 net/netfilter/nfnetlink.c:598 netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline] netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338 netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927 sock_sendmsg_nosec net/socket.c:654 [inline] sock_sendmsg+0xcf/0x120 net/socket.c:674 ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350 ___sys_sendmsg+0xf3/0x170 net/socket.c:2404 __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xae (CVE-2021-46915)

- Linux カーネルでは、次の脆弱性が解決されています: KEYS: trusted: seal/unseal の TPM 予約を修正。元のパッチ 8c657a0590de (KEYS: trusted: seal および unseal 用に TPM を予約) は、メーリングリストにおいて適切でした: https://lore.kernel.org/linux-integrity/[email protected]/。しかし、何らかの理由でリベースされたため、tpm2_seal_trusted() の tpm_try_get_ops() がなくなっていました。これにより、TPM ops の put が不均衡になり、TIS ベースのハードウェアでエラーが発生します。この修正は、なくなっていた tpm_try_get_ops() を戻します (CVE-2021-46922)

- Linux カーネルでは、次の脆弱性が解決されています: perf/core: 無条件の security_locked_down() 呼び出しを修正します。現在、PERF_SAMPLE_REGS_INTR ビットが attr.sample_type に設定されている場合にのみ結果が使用される場合でも、ロックダウン状態は無条件でクエリされます。Lockdown LSM の場合は問題ありませんが、SELinux のロックダウンフック実装で問題が発生します。SELinux は、現在のタスクのタイプに対応するロックダウンクラスのアクセス許可 (整合性または機密性) がポリシーで許可されているかどうかをチェックする locked_down フックを実装します。これは、アクセスコントロールの決定が無視されるときにフックを呼び出すと、偽造のアクセス許可チェックと監査レコードが生成されることを意味します。最初に sample_type をチェックし、その結果が尊重される場合にのみフックを呼び出すことで、これを修正します。(CVE-2021-46971)

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

ソリューション

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

参考資料

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

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

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

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

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

https://alas.aws.amazon.com/cve/html/CVE-2020-25673.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-3501.html

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

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

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

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

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

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

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

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

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

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

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

プラグインの詳細

深刻度: High

ID: 160443

ファイル名: al2_ALASKERNEL-5_10-2022-001.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.5

CVSS v2

リスクファクター: High

基本値: 7.2

現状値: 6.3

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

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

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

脆弱性情報

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

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

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

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

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

脆弱性公開日: 2021/4/14

エクスプロイト可能

Core Impact

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

参照情報

CVE: CVE-2020-25670, CVE-2020-25671, CVE-2020-25672, CVE-2020-25673, CVE-2021-23133, CVE-2021-29155, CVE-2021-31829, CVE-2021-3489, CVE-2021-3490, CVE-2021-3491, CVE-2021-3501, CVE-2021-46904, CVE-2021-46905, CVE-2021-46908, CVE-2021-46912, CVE-2021-46914, CVE-2021-46915, CVE-2021-46922, CVE-2021-46971