Amazon Linux 2 : kernel (ALASKERNEL-5.10-2024-048)

high Nessus プラグイン ID 190029

概要

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

説明

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

- Xen の仮想ネットワークプロトコルでの送信リクエストは、複数の部分で構成される場合があります。あまり有用ではありませんが、最初の部分を除いて、それらのいずれも長さがゼロ、つまり、データをまったく伝送しない可能性があります。転送されるデータの最初の特定の部分に加えて、これらの部分は Linux が SKB フラグメントと呼ぶものに直接変換されます。このように変換されたリクエスト部分は、特定の SKB の長さがすべてゼロの場合、コアネットワーキングコードで NULL のデリファレンスを引き起こす可能性があります。(CVE-2023-46838)

- Linux カーネルでは、以下の脆弱性が解決されています。uio: uio_open core-1 core-2 におけるメモリ解放後使用 (Use After Free) の修正 ------------------------------------------------------- uio_unregister_device uio_open idev = idr_find() device_unregister(&idev->dev) put_device(&idev->dev) uio_device_release get_device(&idev->dev) kfree(idev) uio_free_minor(minor) uio_release put_device(&idev->dev) kfree(idev)
-------------------------------------------------- ----- core-1 uio_unregister_device() で、idev->dev kobject ref が 1 の場合、device_unregister は idev を kfree します。しかし、core-1 device_unregister、put_device の後、かつ kfree を行う前に、core-2 は get_device することがあります。1. core-1 が idev を kfree した後、core-2 は idev に対してメモリ解放後使用 (Use After Free) を実行します。2. core-2 が uio_release および put_device を行う場合、idev が二重解放されます。この問題に対処するために、minor_lock で idev atomic および inc idev 参照を取得できます。
(CVE-2023-52439)

- Linux カーネルでは、次の脆弱性が解決されています。gfs2: gfs2_rgrp_dump のカーネル NULL ポインターデリファレンスを修正します。Syzkaller 氏が、gfs2_rgrp_dump() の rgd->rd_rgl にアクセスするときの NULL ポインターデリファレンスを報告しました。これは、read_rindex_entry() で rgd->rd_gl の作成が失敗したときに発生する可能性があります。それを防ぐために、gfs2_rgrp_dump() に NULL ポインターチェックを追加します。(CVE-2023-52448)

- Linux カーネルでは、次の脆弱性が解決されています。bpf: スピルされたポインターを破損させる試みのチェックを修正します。レジスターが 1/2/4 バイトのレジスターとしてスタックにスピルされると、slot_type[BPF_REG_SIZE - 1] が設定されます (加えて、実際のスピルサイズに応じて、その下にさらに存在する可能性があります)。したがって、一部のスタックスロットがレジスターをスピルしているかどうかを確認するには、slot_type[0] ではなく slot_type[7] を調べる必要があります。これを覚えておく必要がなく、将来的に二重チェックするには、is_spilled_reg() ヘルパーを使用します。
(CVE-2023-52462)

- Linux カーネルでは、次の脆弱性は解決されています。efivarfs: SetVariable がサポートされていない場合、再マウント時に RO を強制します。ランタイムの SetVariable がファームウェアによってサポートされていない場合、その関数にコールバックを割り当てることはありません。同時に efivarfs を RO としてマウントし、誰もそれを呼び出せないようにします。ただし、誰かがファイルシステムを RW として再マウントした場合は、アクセス許可フラグをチェックしません。結果として、これは次のようなクラッシュを引き起こします。$ mount -o remount,rw /sys/firmware/efi/efivars $ efi-updatevar -f PK.auth PK [303.279166] 仮想アドレス 0000000000000000 [303.280482] でカーネル NULL ポインターデリファレンスを処理できません Mem abort info: [ 303.280854] ESR = 0x0000000086000004 [ 303.281338] EC = 0x21: IABT (current EL), IL = 32 bits [ 303.282016] SET = 0, FnV = 0 [ 303.282414] EA = 0, S1PTW = 0 [ 303.282821] FSC = 0x04:
level 0 translation fault [ 303.283771] user pgtable: 4k pages, 48-bit VAs, pgdp=000000004258c000 [303.284913] [0000000000000000] pgd=0000000000000000, p4d=0000000000000000 [ 303.286076] Internal error:
Oops: 0000000086000004 [#1] PREEMPT SMP [ 303.286936] Modules linked in: qrtr tpm_tis tpm_tis_core crct10dif_ce arm_smccc_trng rng_core drm fuse ip_tables x_tables ipv6 [ 303.288586] CPU: 1 PID: 755 Comm:
efi-updatevar Not tainted 6.3.0-rc1-00108-gc7d0c4695c68 #1 [ 303.289748] ハードウェア名: Unknown Unknown Product/Unknown Product, BIOS 2023.04-00627-g88336918701d 04/01/2023 [ 303.291150] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 303.292123] pc : 0x0 [ 303.292443] lr :
efivar_set_variable_locked+0x74/0xec [ 303.293156] sp : ffff800008673c10 [ 303.293619] x29:
ffff800008673c10 x28: ffff0000037e8000 x27: 0000000000000000 [ 303.294592] x26: 0000000000000800 x25:
ffff000002467400 x24: 0000000000000027 [ 303.295572] x23: ffffd49ea9832000 x22: ffff0000020c9800 x21:
ffff000002467000 [ 303.296566] x20: 0000000000000001 x19: 00000000000007fc x18: 0000000000000000 [303.297531] x17: 0000000000000000 x16: 0000000000000000 x15: 0000aaaac807ab54 [ 303.298495] x14:
ed37489f673633c0 x13: 71c45c606de13f80 x12: 47464259e219acf4 [ 303.299453] x11: ffff000002af7b01 x10:
0000000000000003 x9 : 0000000000000002 [ 303.300431] x8 : 0000000000000010 x7 : ffffd49ea8973230 x6 :
0000000000a85201 [ 303.301412] x5 : 0000000000000000 x4 : ffff0000020c9800 x3 : 00000000000007fc [303.302370] x2 : 0000000000000027 x1 : ffff000002467400 x0 : ffff000002467000 [ 303.303341] 呼び出しトレース: [303.303679] 0x0 [ 303.303938] efivar_entry_set_get_size+0x98/0x16c [ 303.304585] efivarfs_file_write+0xd0/0x1a4 [ 303.305148] vfs_write+0xc4/0x2e4 [ 303.305601] ksys_write+0x70/0x104 [303.306073] __arm64_sys_write+0x1c/0x28 [ 303.306622] invoke_syscall+0x48/0x114 [ 303.307156] el0_svc_common.constprop.0+0x44/0xec [ 303.307803] do_el0_svc+0x38/0x98 [ 303.308268] el0_svc+0x2c/0x84 [303.308702] el0t_64_sync_handler+0xf4/0x120 [ 303.309293] el0t_64_sync+0x190/0x194 [ 303.309794] コード:
???????? ???????? ???????? ???????? (????????) [ 303.310612] ---[ end trace 0000000000000000 ]--- .reconfigure() 関数を fs 操作に追加することによりこれを修正します これは、リクエストされたフラグを確認したり、ファームウェアがランタイムで SetVariable を実装しない場合に RO でないものすべてを拒否する際に使用できます。(CVE-2023-52463)

- Linux カーネルで、次の脆弱性が解決されています。mfd: syscon: of_syscon_register() の NULL ポインターデリファレンスを修正します kasprintf() が、失敗時に NULL になる可能性のある動的に割り当てられたメモリへポインターを返します。(CVE-2023-52467)

- Linux カーネルでは、次の脆弱性が解決されています。drivers/amd/pm: kv_parse_power_table のメモリ解放後使用 (Use After Free) を修正します kzalloc によって割り当てられた ps が NULL の場合、kv_parse_power_table は、より前に割り当てられていた adev->pm.dpm.ps を解放します。ただし、制御フローが以下の呼び出しチェーンを通過した後: kv_parse_power_table |-> kv_dpm_init |-> kv_dpm_sw_init |-> kv_dpm_fini adev->pm.dpm.ps は、kv_parse_power_table で最初に解放された後、kv_dpm_fini の for ループで使用され、メモリ解放後使用 (Use After Free) のバグを引き起こします。(CVE-2023-52469)

- netfilter に関連する領域外アクセスの脆弱性が報告され、次のとおり修正されました: f1082dd31fe4 (netfilter: nf_tables: サポートされていないファミリーのテーブルを拒否)。新しい netfilter テーブルを作成する際に、「nf_tables_newtable」関数内に無効な nf_tables family (pf) 値に対する保護手段がないため、攻撃者が領域外アクセスを達成する可能性があります。(CVE-2023-6040)

- Linux カーネルの ida_free in lib/idr.c に、NULL ポインターデリファレンスの問題が見つかりました。この問題により関数の戻り値でチェックが行われないため、このライブラリを使用する攻撃者がサービス拒否の問題を引き起こす可能性があります。(CVE-2023-6915)

- Linux カーネルの SMB クライアントサブコンポーネントの fs/smb/client/smb2ops.c の receive_encrypted_standard に、領域外メモリ読み取りの欠陥が見つかりました。この問題は、memcpy の長さの整数アンダーフローが原因で発生し、サービス拒否を引き起こします。(CVE-2024-0565)

- Linux カーネルの Netfilter サブシステムで欠陥が発見されました。問題は nft_byteorder_eval() 関数にあり、コードがループを繰り返して「dst」配列に書き込みます。各反復で 8 バイトが書き込まれますが、「dst」は u32 の配列であるため、各要素には 4 バイト分のスペースしかありません。つまり、反復するたびに前の要素の一部が上書きされ、この u32 の配列が破損してしまいます。この欠陥により、ローカルユーザーがサービス拒否を引き起こしたり、NetFilter の機能を破壊したりする可能性があります。(CVE-2024-0607)

- Linux カーネルの Transport Layer Security 機能で、ユーザーが ktls ソケットを宛先として関数 splice を呼び出す方法に、領域外メモリ書き込みの欠陥が見つかりました。この欠陥によりローカルユーザーがクラッシュさせたり、システムで自分の権限を昇格させたりする可能性があります。(CVE-2024-0646)

- 6.7.1 までの Linux カーネルの net/rds/af_rds.c の rds_recv_track_latency に、RDS_MSG_RX_DGRAM_TRACE_MAX の比較に off-by-one のエラーがあり、領域外アクセスが発生する可能性があります。(CVE-2024-23849)

- Linux カーネルでは、次の脆弱性が解決されています。mlxsw: spectrum_acl_tcam: スタック破損を修正します。tc フィルターが最初にネットデバイスに追加されると、対応するローカルポートがデバイスの ACL グループにバインドされます。グループには ACL のリストが含まれます。次に、各 ACL は、フィルターが保存されている異なる TCAM 領域を指し示します。転送中、一致が見つかるまで ACL が順番に評価されます。フィルターを異なる領域に配置する理由の 1 つは、優先順位を下げ、順番を変えて追加し、キーの用途により 2 つの連続するフィルターが同じ領域に収まらないようにするためです。Spectrum-2 以降の ASIC では、ファームウェアが、グループ内の ACL の最大数が 16 を超えると報告するようになりましたが、ACL グループを設定するレジスタのレイアウト (PAGT) は、それを説明するように更新されていませんでした。したがって、グループに 16 を超える ACL が必要なまれなケースでは、スタック破損 [1] に達する可能性があります。最大 ACL グループサイズを、ファームウェアが報告する値と PAGT レジスタに適合する最大 ACL との間の最小値に制限することで、修正します。テストケースを追加して、この状態に達したときにマシンがクラッシュしないことを確認します。[1] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: mlxsw_sp_acl_tcam_group_update+0x116/0x120 [...] dump_stack_lvl+0x36/0x50 panic+0x305/0x330 __stack_chk_fail+0x15/0x20 mlxsw_sp_acl_tcam_group_update+0x116/0x120 mlxsw_sp_acl_tcam_group_region_attach+0x69/0x110 mlxsw_sp_acl_tcam_vchunk_get+0x492/0xa20 mlxsw_sp_acl_tcam_ventry_add+0x25/0xe0 mlxsw_sp_acl_rule_add+0x47/0x240 mlxsw_sp_flower_replace+0x1a9/0x1d0 tc_setup_cb_add+0xdc/0x1c0 fl_hw_replace_filter+0x146/0x1f0 fl_change+0xc17/0x1360 tc_new_tfilter+0x472/0xb90 rtnetlink_rcv_msg+0x313/0x3b0 netlink_rcv_skb+0x58/0x100 netlink_unicast+0x244/0x390 netlink_sendmsg+0x1e4/0x440 ____sys_sendmsg+0x164/0x260 ___sys_sendmsg+0x9a/0xe0 __sys_sendmsg+0x7a/0xc0 do_syscall_64+0x40/0xe0 entry_SYSCALL_64_after_hwframe+0x63/0x6b (CVE-2024-26586)

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

ソリューション

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

参考資料

https://alas.aws.amazon.com/AL2/ALASKERNEL-5.10-2024-048.html

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

https://alas.aws.amazon.com/cve/html/CVE-2023-6040.html

https://alas.aws.amazon.com/cve/html/CVE-2023-6915.html

https://alas.aws.amazon.com/cve/html/CVE-2023-46838.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52439.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52448.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52462.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52463.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52467.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52469.html

https://alas.aws.amazon.com/cve/html/CVE-2024-0565.html

https://alas.aws.amazon.com/cve/html/CVE-2024-0607.html

https://alas.aws.amazon.com/cve/html/CVE-2024-0646.html

https://alas.aws.amazon.com/cve/html/CVE-2024-23849.html

https://alas.aws.amazon.com/cve/html/CVE-2024-26586.html

プラグインの詳細

深刻度: High

ID: 190029

ファイル名: al2_ALASKERNEL-5_10-2024-048.nasl

バージョン: 1.4

タイプ: local

エージェント: unix

公開日: 2024/2/6

更新日: 2024/5/10

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

リスク情報

VPR

リスクファクター: High

スコア: 7.4

CVSS v2

リスクファクター: High

基本値: 7.7

現状値: 5.7

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

CVSS スコアのソース: CVE-2024-0565

CVSS v3

リスクファクター: High

基本値: 7.8

現状値: 6.8

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

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

CVSS スコアのソース: CVE-2024-0646

脆弱性情報

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-livepatch-5.10.209-198.812, 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

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2024/2/1

脆弱性公開日: 2024/1/12

参照情報

CVE: CVE-2023-46838, CVE-2023-52439, CVE-2023-52448, CVE-2023-52462, CVE-2023-52463, CVE-2023-52467, CVE-2023-52469, CVE-2023-6040, CVE-2023-6915, CVE-2024-0565, CVE-2024-0607, CVE-2024-0646, CVE-2024-23849, CVE-2024-26586