Oracle Linux 9 : kernel (ELSA-2024-2394)

critical Nessus プラグイン ID 195036

概要

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

説明

リモートの Oracle Linux 9 ホストに、ELSA-2024-2394アドバイザリに記載されている複数の脆弱性の影響を受けるパッケージがインストールされています。

- 6.2.3より前の Linux カーネルの lib/kobject.c に問題が発見されました。root アクセスにより、攻撃者は競合状態を発生させ、fill_kobj_path の領域外書き込みを引き起こす可能性があります。(CVE-2023-45863)

- Linux カーネル 6.2 の drivers/bluetooth/hci_ldisc.c に問題が見つかりました。hci_uart_tty_ioctl で、HCIUARTSETPROTO と HCIUARTGETPROTO の間に競合状態があります。hu->proto が設定される前に HCI_UART_PROTO_SET が設定されます。NULL ポインターデリファレンスが発生する可能性があります。(CVE-2023-31083)

- Linux カーネルの XFRM サブシステムで欠陥が見つかりました。状態フィルターの処理内に特定の欠陥が存在するため、割り当てられたバッファの終わりを越えて読み取りが行われる可能性があります。この欠陥により、ローカルの権限 (CAP_NET_ADMIN) を持つ攻撃者が、領域外読み取りをトリガーし、情報漏洩を引き起こす可能性があります。(CVE-2023-39194)

- 6.4.5 より前の Linux カーネルでは、非ブロッキングアトミックコミットとドライバーアンロードの間の競合状態の間、drivers/gpu/drm/drm_atomic.c にメモリ解放後使用 (Use After Free) があります。(CVE-2023-51043)

- Linux カーネルの hugetlbfs (HugeTLB ページ) 機能の hugetlbfs_fill_super 関数に、NULL ポインターデリファレンスの欠陥が見つかりました。ローカルユーザーはこの欠陥を利用して、システムをクラッシュしたり、システム上で権限を昇格したりする可能性があります。(CVE-2024-0841)

- 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)

- 拒否された理由: この CVE ID は、CVE Numbering Authority により拒否または撤回されました。
(CVE-2024-26609)

- Linux カーネルでは、次の脆弱性が解決されています。mm/sparsemem: memory_section->usage へのアクセス競合を修正します。以下の競合は、PFN が [ZONE_NORMAL ZONE_DEVICE ZONE_NORMAL] である場合に、実行するシステムメモリ設定のデバイスメモリ領域に該当する PFN で観察されます。通常のゾーンの開始および終了 pfn にはデバイスメモリ PFN も含まれているため、トリガーされたコンパクションはデバイスメモリ PFN でも試行しますが、これらは NOP になります (pfn_to_online_page() が ZONE_DEVICE メモリセクションに対して NULL を返すため)。問題の PFN が属する ZONE_DEVICE 領域のセクションマッピングが他のコアから削除される場合、コンパクションが現在操作されているため、CONFIG_SPASEMEM_VMEMAP が有効な状態でカーネルクラッシュを引き起こします。クラッシュログは [1] で確認できます。
compact_zone() memunmap_pages ------------- --------------- __pageblock_pfn_to_page ...... (a)pfn_valid():
valid_section()//return true (b)__remove_pages()-> sparse_remove_section()->section_deactivate(): [ms->usage 配列を解放し、ms->usage = NULL を設定] pfn_section_valid() [Access ms->usage これは NULL です] 注意:
以上のことから、競合は pfn_valid()/pfn_section_valid() の間に縮小され、SPASEMEM_VMEMAP を有効にしてセクションが無効化されたと言えます。コミット b943f045a9af (mm/sparse: pfn_section_valid チェックでカーネルクラッシュを修正) は、valid_section() が false を返すことを期待して SECTION_HAS_MEM_MAP をクリアすることで、同じ問題に対処しようとしました。このため、ms->usage はアクセスされません。以下の手順でこの問題を修正します。a) ->usage を解放する前に、SECTION_HAS_MEM_MAP を消去します。b) RCU で保護された読み取り側のクリティカルセクションは、SECTION_HAS_MEM_MAP がクリアされる際に NULL を返すか、アクセス ->usage に成功します。c) kfree_rcu() で ->usage を解放し、ms->usage = NULL を設定します。SECTION_HAS_MEM_MAP がクリアされ、valid_section() は false を返すため、これ以降は、access ->usage にアクセスする試みは行われません。このパッチに情報を提供してくれた David/Pavan 氏に感謝します。[1] https://lore.kernel.org/linux-mm/[email protected]/ 前述の PFN のメモリ設定を [ZONE_NORMAL ZONE_DEVICE ZONE_NORMAL] とする Snapdragon SoC では、デバイスファームでのテスト中に、毎日多数の問題を確認することができます。この特定の問題については、以下にログがあります。以下のログは pfn_section_valid(){ ms->usage;} を直接指し示していませんが、このダンプを T32 lauterbach ツールに読み込んだときには、それを指し示しています。[ 540.578056] 仮想アドレス 0000000000000000 のカーネル NULL ポインターデリファレンスを処理できません [ 540.578068] メモリ中止情報: [ 540.578070] ESR = 0x0000000096000005 [ 540.578073] EC = 0x25: DABT (現在の EL)、IL = 32 ビット [ 540.578077] SET = 0、FnV = 0 [ 540.578080] EA = 0、S1PTW = 0 [540.578082] FSC = 0x05: レベル 1 変換障害 [ 540.578085] データ中止情報: [ 540.578086] ISV = 0、ISS = 0x00000005 [ 540.578088] CM = 0、WnR = 0 [ 540.579431] pstate: 82400005 (Nzcv daif +PAN -UAO +TCO
-DIT -SSBSBTYPE=--) [ 540.579436] pc : __pageblock_pfn_to_page+0x6c/0x14c [ 540.579454] lr :
compact_zone+0x994/0x1058 [ 540.579460] sp : ffffffc03579b510 [ 540.579463] x29: ffffffc03579b510 x28:
0000000000235800 x27:000000000000000c [ 540.579470] x26: 0000000000235c00 x25: 0000000000000068 x24:ffffffc03579b640 [ 540.579477] x23: 0000000000000001 x22: ffffffc03579b660 x21:0000000000000000 [540.579483] x20: 0000000000235bff x19: ffffffdebf7e3940 x18:ffffffdebf66d140 [ 540.579489] x17:
00000000739ba063 x16: 00000000739ba063 x15:00000000009f4bff [ 540.579495] x14: 0000008000000000 x13:
0000000000000000 x12:0000000000000001 [ 540.579501] x11: 0000000000000000 x10: 0000000000000000 x9 :ffffff897d2cd440 [ 540.579507] x8 : 0000000000000000 x7 : 0000000000000000 x6 :ffffffc03579b5b4 [540.579512] x5 : 0000000000027f25 x4 : ffffffc03579b5b8 x3 :0000000000000 ---truncated--- (CVE-2023-52489)

- Linux カーネルで、次の脆弱性が解決されています。HID: sony: sony_probe() の潜在的なメモリリークを修正します。usb_alloc_urb() 呼び出しが成功した後にエラーが発生する場合は、usb_free_urb() を呼び出す必要があります。(CVE-2023-52529)

- Linux カーネルで、次の脆弱性が解決されています。net/sched: act_ct: ooo フラグでの skb 漏洩とクラッシュが修正されています。act_ct はデフラグメンテーションの前に skb->users を追加します。frag が順番に到着する場合、最後の frag の参照は inet_frag_reasm_prepare skb_morph でリセットされますが、これは簡単ではありません。ただし、frag が順不同に到着すると、誰も最後の frag を unref せず、すべての frag が漏洩します。状況はさらに悪化しており、skb が同時に複製され共有されている場合、パケットキャプチャを開始すると crash[0] が発生する可能性があります。デフラグメンテーションの前に skb_get() を削除することで、この問題を修正します。デフラグが失敗したか進行中の場合、act_ct は TC_ACT_CONSUMED を返します。[0]: [ 843.804823] ------------[ cut here ]------------ [ 843.809659] kernel BUG at net/core/skbuff.c:2091! [ 843.814516] 無効な opcode: 0000 [#1] PREEMPT SMP [ 843.819296] CPU: 7 PID: 0 Comm: swapper/7 Kdump: loaded Tainted: G S 6.7.0-rc3 #2 [ 843.824107] ハードウェア名: XFUSION 1288H V6/BC13MBSBD, BIOS 1.29 11/25/2022 [ 843.828953] RIP: 0010:pskb_expand_head+0x2ac/0x300 [ 843.833805] Code: 8b 70 28 48 85 f6 74 82 48 83 c6 08 bf 01 00 00 00 e8 38 bd ff ff 8b 83 c0 00 00 00 48 03 83 c8 00 00 00 e9 62 ff ff ff 0f 0b <0f> 0b e8 8d d0 ff ff e9 b3 fd ff ff 81 7c 24 14 40 01 00 00 4c 89 [843.843698] RSP: 0018:ffffc9000cce07c0 EFLAGS: 00010202 [ 843.848524] RAX: 0000000000000002 RBX:
ffff88811a211d00 RCX: 0000000000000820 [ 843.853299] RDX: 0000000000000640 RSI: 0000000000000000 RDI:
ffff88811a211d00 [ 843.857974] RBP: ffff888127d39518 R08: 00000000bee97314 R09: 0000000000000000 [843.862584] R10: 0000000000000000 R11: ffff8881109f0000 R12: 0000000000000880 [ 843.867147] R13:
ffff888127d39580 R14: 0000000000000640 R15: ffff888170f7b900 [ 843.871680] FS: 0000000000000000(0000) GS:ffff889ffffc0000(0000) knlGS:0000000000000000 [ 843.876242] CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033 [ 843.880778] CR2: 00007fa42affcfb8 CR3: 000000011433a002 CR4: 0000000000770ef0 [843.885336] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 843.889809] DR3:
0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 843.894229] PKRU: 55555554 [ 843.898539] 呼び出しトレース: [ 843.902772] <IRQ> [ 843.906922] ? __die_body+0x1e/0x60 [ 843.911032] ? die+0x3c/0x60 [843.915037] ? do_trap+0xe2/0x110 [ 843.918911] ? pskb_expand_head+0x2ac/0x300 [ 843.922687] ? do_error_trap+0x65/0x80 [ 843.926342] ? pskb_expand_head+0x2ac/0x300 [ 843.929905] ? exc_invalid_op+0x50/0x60 [ 843.933398] ? pskb_expand_head+0x2ac/0x300 [ 843.936835] ? asm_exc_invalid_op+0x1a/0x20 [ 843.940226] ? pskb_expand_head+0x2ac/0x300 [ 843.943580] inet_frag_reasm_prepare+0xd1/0x240 [ 843.946904] ip_defrag+0x5d4/0x870 [ 843.950132] nf_ct_handle_fragments+0xec/0x130 [nf_conntrack] [ 843.953334] tcf_ct_act+0x252/0xd90 [act_ct] [843.956473] ? tcf_mirred_act+0x516/0x5a0 [act_mirred] [ 843.959657] tcf_action_exec+0xa1/0x160 [843.962823] fl_classify+0x1db/0x1f0 [cls_flower] [ 843.966010] ? skb_clone+0x53/0xc0 [ 843.969173] tcf_classify+0x24d/0x420 [ 843.972333] tc_run+0x8f/0xf0 [ 843.975465]
__netif_receive_skb_core+0x67a/0x1080 [ 843.978634] ? dev_gro_receive+0x249/0x730 [ 843.981759]
__netif_receive_skb_list_core+0x12d/0x260 [ 843.984869] netif_receive_skb_list_internal+0x1cb/0x2f0 [843.987957] ? mlx5e_handle_rx_cqe_mpwrq_rep+0xfa/0x1a0 [mlx5_core] [ 843.991170] napi_complete_done+0x72/0x1a0 [ 843.994305] mlx5e_napi_poll+0x28c/0x6d0 [mlx5_core] [ 843.997501]
__napi_poll+0x25/0x1b0 [ 844.000627] net_rx_action+0x256/0x330 [ 844.003705] __do_softirq+0xb3/0x29b [844.006718] irq_exit_rcu+0x9e/0xc0 [ 844.009672] common_interrupt+0x86/0xa0 [ 844.012537] </IRQ> [844.015285] <TASK> [ 844.017937] asm_common_interrupt+0x26/0x40 [ 844.020591] RIP:
0010:acpi_safe_halt+0x1b/0x20 [ 844.023247] コード: ff 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 65 48 8b 04 25 00 18 03 00 48 8b 00 a8 08 75 0c 66 90 0f 00 2d 81 d0 44 00 fb ---truncated--- (CVE-2023-52610)

- Linux カーネルでは、次の脆弱性が解決されています。net: tls: 暗号リクエストのバックログを処理します。暗号 API へのリクエストに CRYPTO_TFM_REQ_MAY_BACKLOG フラグを設定しているため、crypto_aead_{encrypt、decrypt} が有効な状況でも -EINPROGRESS の代わりに -EBUSY を返す可能性があります。たとえば、AESNI の cryptd キューがいっぱいである場合 (人為的に低い cryptd.cryptd_max_cpu_qlen でトリガーしやすい)、リクエストはバックログのキューに入れられますが処理は継続されます。その場合、非同期コールバックも 2 回呼び出されます。最初は無視できる err == -EINPROGRESS で、次に err == 0 で呼び出されます。Sabrina の元のパッチと比較して、このバージョンでは新しい tls_*crypt_async_wait() ヘルパーを使用して、EBUSY を EINPROGRESS に変換しすべてのエラー処理パスを変更する必要を回避します。処理は同じです。(CVE-2024-26584)

- Linux カーネルの cxgb4 ドライバーにメモリ解放後使用 (Use After Free) の脆弱性が見つかりました。このバグは、cxgb4 デバイスがワークキューからの flallow_stats_timer の再設定の可能性があることによりデタッチされるときに発生します。この欠陥により、ローカルユーザーがシステムをクラッシュさせ、サービス拒否状態を引き起こす可能性があります。(CVE-2023-4133)

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

- 暗号アルゴリズム scatterwalk 機能の Linux カーネル API で、NULL ポインターデリファレンスの欠陥が見つかりました。この問題は、ユーザーが特定のソケット設定で悪意のあるパケットを作成したときに発生し、ローカルユーザーがシステムをクラッシュさせたり、システム上で権限を昇格したりする可能性があります。(CVE-2023-6176)

- 6.2.9までの Linux カーネルの net/bluetooth/hci_conn.c の hci_conn_cleanup には、hci_dev_put および hci_conn_put への呼び出しによる目盛解放後使用 (Use After Free) (hci_conn_hash_flush で確認) があります。権限昇格につながる可能性のある二重解放があります。(CVE-2023-28464)

- Linux カーネルの Netfilter サブシステムで欠陥が発見されました。誤った「set」での「__ip_set_put」の呼び出しによって、IPSET_CMD_ADD と IPSET_CMD_SWAP の間の競合状態がカーネルパニックを引き起こす可能性があります。
この問題により、ローカルユーザーがシステムをクラッシュさせる可能性があります。(CVE-2023-42756)

- Linux カーネルの fs/locks.c 関数の filelock_init で欠陥が見つかりました。この問題により、memcg が Portable Operating System Interface (POSIX) ファイルロックの数を制限しないために、ホストメモリが枯渇する可能性があります。(CVE-2022-0480)

- Linux カーネルの NVMe-oF/TCP サブシステムに、領域外読み取りの脆弱性が見つかりました。この問題により、リモート攻撃者が細工した TCP パケットを送信することで、ヒープベースのバッファオーバーフローが発生し、kmalloc データが出力され、カーネルリングバッファ (dmesg) にリークする可能性があります。
(CVE-2023-6121)

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

- Bluetooth Core Specification 4.2 から 5.4 を介して Secure Simple Pairing および Secure Connections ペアリングを使用する Bluetooth BR/EDR デバイスは、特定の中間者攻撃を許可します。これにより、短いキー長が強制され、暗号化キーの検出やライブインジェクションが発生する可能性があります。これは、BLUFFS としても知られています。(CVE-2023-24023)

- Linux カーネルの Netfilter サブシステムで欠陥が発見されました。sctp_mt_check が flag_count フィールドを検証していませんでした。この欠陥により、ローカルの権限 (CAP_NET_ADMIN) を持つ攻撃者が、領域外読み取りをトリガーし、クラッシュや情報漏洩を引き起こす可能性があります。(CVE-2023-39193)

- Linux カーネルにおいて、次の脆弱性は解決されています。net: bridge: DEV_STATS_INC() を使用してください syzbot/KCSAN が報告した br_handle_frame_finish() のデータ競合 [1] この関数は、相互排除なしで複数の cpu から実行できます。SMP の安全な DEV_STATS_INC() を採用して、dev->stats フィールドを更新します。dev->stats.tx_dropped への更新を進行中に処理します。[1] BUG: KCSAN: cpu 1 の割り込みによる br_handle_frame_finish / br_handle_frame_finish 読み取り/書き込みの 8 バイトの 0xffff8881374b2178 へのデータ競合:
br_handle_frame_finish+0xd4f/0xef0 net/bridge/br_input.c:189 br_nf_hook_thresh+0x1ed/0x220 br_nf_pre_routing_finish_ipv6+0x50f/0x540 NF_HOOK include/linux/netfilter.h:304 [inline] br_nf_pre_routing_ipv6+0x1e3/0x2a0 net/bridge/br_netfilter_ipv6.c:178 br_nf_pre_routing+0x526/0xba0 net/bridge/br_netfilter_hooks.c:508 nf_hook_entry_hookfn include/linux/netfilter.h:144 [inline] nf_hook_bridge_pre net/bridge/br_input.c:272 [inline] br_handle_frame+0x4c9/0x940 net/bridge/br_input.c:417 __netif_receive_skb_core+0xa8a/0x21e0 net/core/dev.c:5417
__netif_receive_skb_one_core net/core/dev.c:5521 [inline] __netif_receive_skb+0x57/0x1b0 net/core/dev.c:5637 process_backlog+0x21f/0x380 net/core/dev.c:5965 __napi_poll+0x60/0x3b0 net/core/dev.c:6527 napi_poll net/core/dev.c:6594 [inline] net_rx_action+0x32b/0x750 net/core/dev.c:6727
__do_softirq+0xc1/0x265 kernel/softirq.c:553 run_ksoftirqd+0x17/0x20 kernel/softirq.c:921 smpboot_thread_fn+0x30a/0x4a0 kernel/smpboot.c:164 kthread+0x1d7/0x210 kernel/kthread.c:388 ret_from_fork+0x48/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/cpu 0 の割り込みによる entry_64.S:304 読み取り/書き込みの 8 バイトの 0xffff8881374b2178:
br_handle_frame_finish+0xd4f/0xef0 net/bridge/br_input.c:189 br_nf_hook_thresh+0x1ed/0x220 br_nf_pre_routing_finish_ipv6+0x50f/0x540 NF_HOOK include/linux/netfilter.h:304 [inline] br_nf_pre_routing_ipv6+0x1e3/0x2a0 net/bridge/br_netfilter_ipv6.c:178 br_nf_pre_routing+0x526/0xba0 net/bridge/br_netfilter_hooks.c:508 nf_hook_entry_hookfn include/linux/netfilter.h:144 [inline] nf_hook_bridge_pre net/bridge/br_input.c:272 [inline] br_handle_frame+0x4c9/0x940 net/bridge/br_input.c:417 __netif_receive_skb_core+0xa8a/0x21e0 net/core/dev.c:5417
__netif_receive_skb_one_core net/core/dev.c:5521 [inline] __netif_receive_skb+0x57/0x1b0 net/core/dev.c:5637 process_backlog+0x21f/0x380 net/core/dev.c:5965 __napi_poll+0x60/0x3b0 net/core/dev.c:6527 napi_poll net/core/dev.c:6594 [inline] net_rx_action+0x32b/0x750 net/core/dev.c:6727
__do_softirq+0xc1/0x265 kernel/softirq.c:553 do_softirq+0x5e/0x90 kernel/softirq.c:454
__local_bh_enable_ip+0x64/0x70 kernel/softirq.c:381 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline] _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:396 [inline] batadv_tt_local_purge+0x1a8/0x1f0 net/batman-adv/translation-table.c:1356 batadv_tt_purge+0x2b/0x630 net/batman-adv/translation-table.c:3560 process_one_work kernel/workqueue.c:2630 [inline] process_scheduled_works+0x5b8/0xa30 kernel/workqueue.c:2703 worker_thread+0x525/0x730 kernel/workqueue.c:2784 kthread+0x1d7/0x210 kernel/kthread.c:388 ret_from_fork+0x48/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304 変更された値: 0x00000000000d7190 -> 0x00000000000d7191 カーネル同時実行性による報告: Sanitizer on: CPU: 0 PID: 14848 Comm: kworker/u4:11 汚染されていない 6.6.0-rc1-syzkaller-00236-gad8a69f361b9 #0 (CVE-2023-52578)

- デバイスファイル「/dev/dri/renderD128 (or Dxxx)」を含む Linux カーネルの GPU コンポーネントの drivers/gpu/vmxgfx/vmxgfx_execbuf.c の vmwgfx ドライバーに NULL ポインターデリファレンスの脆弱性が見つかりました。この欠陥により、システム上のユーザーアカウントを持つローカルの攻撃者が権限を取得し、サービス拒否 (DoS) を引き起こす可能性があります。
(CVE-2022-38096)

- バージョン 1.9.30 以前の linux 用 Intel (R) Ethernet Controller RDMA ドライバーのアクセスコントロールが不適切なため、認証されていないユーザーがネットワークアクセスで権限の昇格を有効にできる可能性があります。
(CVE-2023-25775)

- 6.5.9 までの Linux カーネルで問題が発見されました。SQ スレッドの終了時に競合が発生すると、io_uring/fdinfo.c の io_uring_show_fdinfo で NULL ポインターデリファレンスが発生する可能性があります。(CVE-2023-46862)

- Linux カーネルで、次の脆弱性が解決されています。net: neigh_periodic_work() のストアティアリングの可能性を修正します neigh_periodic_work() を含む関連する syzbot レポートを見ていると、RCU 保護アイテムをリストから削除するときに注釈を追加するのを忘れていたことがわかりました。リーダーは rcu_deference(*np) を使用します。ストアティアリングを防ぐために、ライター側で rcu_assign_pointer() または WRITE_ONCE() を使用する必要があります。rcu_assign_pointer() を使用して lockdep をサポートさせます。これは neigh_flush_dev() での選択です。(CVE-2023-52522)

- unix ガベージコレクターが SKB がキューイングされているソケットの unix_stream_read_generic() と競合する SKB を削除する競合問題により、Linux カーネルにメモリ解放後使用 (Use After Free) の欠陥が見つかりました。
(CVE-2023-6531)

- Linux カーネルの GSM 0710 tty マルチプレクサに、競合状態が見つかりました。この問題は、gsm ライン規則が有効になっている状態で、2 つのスレッドが同じ tty ファイル記述子で GSMIOC_SETCONF ioctl を実行する際に発生し、gsm mux の再起動中に struct gsm_dlci でメモリ解放後使用 (Use-After-Free) 問題を引き起こす可能性があります。これにより、権限のないローカルユーザーがシステムで権限を昇格させる可能性があります。(CVE-2023-6546)

Linux カーネル ipv4 スタックに、NULL ポインターデリファレンスの欠陥が見つかりました。ソケットバッファ (skb) は、__ip_options_compile を呼び出す前に、デバイスに関連付けられていると想定されていました。これは、skb が ipvs によって再ルーティングされる場合には必ずしも当てはまりません。この問題により、CAP_NET_ADMIN 権限のあるローカルユーザーは、システムをクラッシュできる可能性があります。(CVE-2023-42754)

- 6.0.10 までの Linux カーネルに問題が見つかりました。net/bluetooth/l2cap_core.c の l2cap_config_req には、L2CAP_CONF_REQ パケットによる整数ラップアラウンドがあります。(CVE-2022-45934)

- Linux カーネルの ipv4: igmp コンポーネントに存在するメモリ解放後使用 (Use After Free) の脆弱性が悪用され、ローカルの権限昇格が達成される可能性があります。競合状態が悪用され、別のスレッドによって解放された RCU 読み取りロックオブジェクトで、タイマーが誤って登録される可能性があります。過去のコミット e2b706c691905fe78468c361aaabc719d0a496f1 へのアップグレードを推奨します。(CVE-2023-6932)

- 6.2.8までの Linux カーネルでは、net/bluetooth/hci_sync.c は領域外アクセスを許可します。これは、amp_init1[]と amp_init2[]に意図的に無効な要素があると想定されていますが、そうではないためです。
(CVE-2023-28866)

- Linux カーネルの QXL ドライバーに、競合状態が見つかりました。qxl_mode_dumb_create() 関数は、qxl_gem_object_create_with_handle() によって返された qobj を逆参照しますが、それへの参照を保持しているのはハンドルだけです。この欠陥により、攻撃者が、返されたハンドル値を推測し、メモリ解放後使用 (Use After Free) の問題を発生させることで、サービス拒否または権限昇格を引き起こす可能性があります。(CVE-2023-39198)

- Linux カーネルで、次の脆弱性が解決されています。netfilter: nf_tables: 255 を超える要素が期限切れになったときの memleak を修正します。255 を超える要素が期限切れになった場合、新しい gc コンテナ構造に切り替えることになっています。これは決して起こりません。u8 タイプは境界に到達する前にラップし、nft_trans_gc_space() は常に true を返します。これは、最初の gc コンテナ構造をリサイクルし、より前に存在する要素を追跡できないことを意味します。その間、call_rcu に渡した後は「gc」を逆参照しません。(CVE-2023-52581)

- Linux カーネルの netfilter: nf_tables コンポーネントに存在するメモリ解放後使用 (Use After Free) の脆弱性が悪用されると、ローカルの権限昇格が達成される可能性があります。nft_setelem_catchall_deactivate() 関数は、catch-all セット要素を解放する前に、次世代ではなく現世代でアクティブかどうかをチェックしますが、次世代では非アクティブのフラグを立てるだけであるため、要素を複数回解放することが可能であり、二重解放の脆弱性につながります。過去のコミット b1db244ffd041a49ecc9618e8feb6b5c1afcdaa7 をアップグレードすることをお勧めします。(CVE-2024-1085)

- Linux カーネルでは、次の脆弱性が解決されています。tls: 非同期通知とソケットクローズの間の競合を修正します。送信中のスレッド (recvmsg/sendmsg と呼ばれていた) が、非同期暗号ハンドラーが complete() を呼び出すとすぐに終了する可能性があり、その後のどのコードでもすでに解放されたデータにアクセスする危険があります。ロックと余分なフラグをすべて一緒に回避するようにしてください。メインスレッドに追加の参照を保持させて、同期をアトミック参照カウンターのみに依存させることができます。完了の再初期化を待つ必要はありません。完了が起動するタイミングが厳密に制御されるようになりました。(CVE-2024-26583)

- Linux カーネルのパフォーマンスイベントシステムコンポーネントのヒープ領域外書き込みの脆弱性が悪用され、ローカル権限昇格が引き起こされる可能性があります。perf_event の read_size がオーバーフローすると、perf_read_group() 内でヒープの範囲外の増加または書き込みが発生する可能性があります。過去のコミット 382c27f4ed28f803b1f1473ac2d8db0afc795a1b へのアップグレードを推奨します。(CVE-2023-6931)

- Linux カーネルの Netfilter サブシステムで欠陥が発見されました。nfnl_osf_add_callback 関数は、ユーザーモードが制御する opt_num フィールドを検証していませんでした。この欠陥により、ローカルの権限 (CAP_NET_ADMIN) を持つ攻撃者が、領域外読み取りをトリガーし、クラッシュや情報漏洩を引き起こす可能性があります。(CVE-2023-39189)

- Linux カーネルでは、以下の脆弱性が解決されています。i2c: i801: ブロックプロセス呼び出しトランザクションを修正してます。Intel データシートによると、ソフトウェアはブロックプロセス呼び出しトランザクションのブロックバッファインデックスを 2 回リセットしなければなりません。バッファに送信データを書き込む前とバッファから着信データを読み取る前です。ドライバーには現在 2 番目のリセットがないため、ブロックバッファの誤った部分が読み取られます。(CVE-2024-26593)

- 6.6.8 より前の Linux カーネルで問題が発見されました。net/atm/ioctl.c の do_vcc_ioctl に、vcc_recvmsg の競合状態によるメモリ解放後使用 (Use After Free) があります。(CVE-2023-51780)

- Linux カーネルでは、次の脆弱性が解決されています。tls: tx 作業スケジュールとソケットクローズの間の競合を修正します。以前のコミットと同様、送信中のスレッド (recvmsg/sendmsg) が、非同期暗号ハンドラーが complete() を呼び出すとすぐに終了する可能性があります。complete() を呼び出す前に作業のスケジュールを並べ替えます。これは、送信スレッドが行うことの逆の順序であるため、第一に、より論理的に思えます。(CVE-2024-26585)

- Bluetooth Core Specification 1.0B〜 5.2の Bluetooth レガシー BR/EDR PIN コードのペアリングにより、認証されていない近くのデバイスが、PIN を知らなくてもピアデバイスの BD_ADDR を偽装してペアリングを完了する可能性があります。(CVE-2020-26555)

- Linux カーネルの vc_screen の中の drivers/tty/vt/vc_screen.c の vcs_read に、メモリ解放後使用 (Use After Free) の欠陥が見つかりました。この問題により、ローカルのユーザーアクセス権限を持つ攻撃者がシステムをクラッシュさせる可能性があります。(CVE-2023-3567)

- 6.4.2 までの Linux カーネルの USB サブシステムに問題が発見されました。drivers/usb/core/sysfs.c の read_descriptors に領域外とクラッシュがあります。(CVE-2023-37453)

- Linux カーネルでは、次の脆弱性が解決されています。smb: client: smb2_parse_contexts() の潜在的な OOB を修正します。逆参照する前にオフセットと長さを検証し、smb2_parse_contexts() でコンテキストを作成します。これにより、サーバーから無効なコンテキスト作成にアクセスする際の次の oops が修正されます。BUG:
次のアドレスのページ障害を処理できません。ffff8881178d8cc3 #PF: カーネルモードでのスーパーバイザー読み取りアクセス #PF:
error_code(0x0000) - ページが存在しない PGD 4a01067 P4D 4a01067 PUD 0 Oops: 0000 [#1] PREEMPT SMP NOPTI CPU:
3 PID: 1736 Comm: mount.cifs Not tainted 6.7.0-rc4 #1 ハードウェア名: QEMU Standard PC (Q35 + ICH9、2009)、BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04 /01/2014 RIP: 0010:smb2_parse_contexts+0xa0/0x3a0 [cifs] Code: f8 10 75 13 48 b8 93 ad 25 50 9c b4 11 e7 49 39 06 0f 84 d2 00 00 00 8b 45 00 85 c0 74 61 41 29 c5 48 01 c5 41 83 fd 0f 76 55 <0f> b7 7d 04 0f b7 45 06 4c 8d 74 3d 00 66 83 f8 04 75 bc ba 04 00 RSP:
0018:ffffc900007939e0 EFLAGS: 00010216 RAX: ffffc90000793c78 RBX: ffff8880180cc000 RCX: ffffc90000793c90 RDX: ffffc90000793cc0 RSI: ffff8880178d8cc0 RDI: ffff8880180cc000 RBP: ffff8881178d8cbf R08:
ffffc90000793c22 R09: 0000000000000000 R10: ffff8880180cc000 R11: 0000000000000024 R12: 0000000000000000 R13: 0000000000000020 R14: 0000000000000000 R15: ffffc90000793c22 FS: 00007f873753cbc0(0000) GS:ffff88806bc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2:
ffff8881178d8cc3 CR3: 00000000181ca000 CR4: 0000000000750ef0 PKRU: 55555554 呼び出しトレース: <TASK> ?
__die+0x23/0x70 ? page_fault_oops+0x181/0x480 ? search_module_extables+0x19/0x60 ? srso_alias_return_thunk+0x5/0xfbef5 ? exc_page_fault+0x1b6/0x1c0 ? asm_exc_page_fault+0x26/0x30 ? smb2_parse_contexts+0xa0/0x3a0 [cifs] SMB2_open+0x38d/0x5f0 [cifs] ? smb2_is_path_accessible+0x138/0x260 [cifs] smb2_is_path_accessible+0x138/0x260 [cifs] cifs_is_path_remote+0x8d/0x230 [cifs] cifs_mount+0x7e/0x350 [cifs] cifs_smb3_do_mount+0x128/0x780 [cifs] smb3_get_tree+0xd9/0x290 [cifs] vfs_get_tree+0x2c/0x100 ? capable+0x37/0x70 path_mount+0x2d7/0xb80 ? srso_alias_return_thunk+0x5/0xfbef5 ?
_raw_spin_unlock_irqrestore+0x44/0x60 __x64_sys_mount+0x11a/0x150 do_syscall_64+0x47/0xf0 entry_SYSCALL_64_after_hwframe+0x6f/0x77 RIP: 0033:0x7f8737657b1e (CVE-2023-52434)

- Linux カーネルでは、次の脆弱性が解決されています。net/core: ETH_P_1588 フローディセクタを修正します。0xff パターンが続く 256 バイト以上のサイズの PTP ethernet raw フレームが __skb_flow_dissect に送信されると、nhoff の値計算が間違ってしまいます。例: hdr->message_length は間違った値 (0xffff) を取り、実際のヘッダー長を複製しません。このケースでは、「nhoff」の値がオーバーライドされ、PTP ヘッダーが不適切に分割されていました。これにより、カーネルクラッシュが発生します。flow_dissector net/core flow dissector nhoff = 0x0000000e net/core flow dissector hdr->message_length = 0x0000ffff net/core flow dissector nhoff = 0x0001000d (u16 オーバーフロー) ... skb linear: 00000000: 00 a0 c9 00 00 00 00 a0 c9 00 00 00 88 skb frag: 00000000: f7 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ptp_header struct のサイズを使用すると、nhoff 値の計算が修正されます。net/core flow dissector nhoff = 0x0000000e net/core flow dissector nhoff = 0x00000030 (sizeof ptp_header) ... skb linear:
00000000: 00 a0 c9 00 00 00 00 a0 c9 00 00 00 88 f7 ff ff skb linear: 00000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff skb linear: 00000020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff skb frag:
00000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Kernel trace: [ 74.984279] ------------[ cut here ]------------ [ 74.989471] kernel BUG at include/linux/skbuff.h:2440! [ 74.995237] 無効な opcode:
0000 [#1] PREEMPT SMP NOPTI [ 75.001098] CPU: 4 PID: 0 Comm: swapper/4 Tainted: G U 5.15.85-intel-ese-standard-lts #1 [ 75.011629] ハードウェア名: Intel Corporation A-Island (CPU:AlderLake)/A-Island (ID:06)、BIOS SB_ADLP.01.01.00.01.03.008.D-6A9D9E73-dirty 2023 年 3 月 30 日 [ 75.026507] RIP:
0010:eth_type_trans+0xd0/0x130 [ 75.031594] Code: 03 88 47 78 eb c7 8b 47 68 2b 47 6c 48 8b 97 c0 00 00 00 83 f8 01 7e 1b 48 85 d2 74 06 66 83 3a ff 74 09 b8 00 04 00 00 eb ab <0f> 0b b8 00 01 00 00 eb a2 48 85 ff 74 eb 48 8d 54 24 06 31 f6 b9 [ 75.052612] RSP: 0018:ffff9948c0228de0 EFLAGS: 00010297 [ 75.058473] RAX:
00000000000003f2 RBX: ffff8e47047dc300 RCX: 0000000000001003 [ 75.066462] RDX: ffff8e4e8c9ea040 RSI:
ffff8e4704e0a000 RDI: ffff8e47047dc300 [ 75.074458] RBP: ffff8e4704e2acc0 R08: 00000000000003f3 R09:
0000000000000800 [ 75.082466] R10: 000000000000000d R11: ffff9948c0228dec R12: ffff8e4715e4e010 [75.090461] R13: ffff9948c0545018 R14: 0000000000000001 R15: 0000000000000800 [ 75.098464] FS:
0000000000000000(0000) GS:ffff8e4e8fb00000(0000) knlGS:0000000000000000 [ 75.107530] CS: 0010 DS: 0000 ES:
0000 CR0: 0000000080050033 [ 75.113982] CR2: 00007f5eb35934a0 CR3: 0000000150e0a002 CR4: 0000000000770ee0 [ 75.121980] PKRU: 55555554 [ 75.125035] Call Trace: [ 75.127792] <IRQ> [ 75.130063] ? eth_get_headlen+0xa4/0xc0 [ 75.134472] igc_process_skb_fields+0xcd/0x150 [ 75.139461] igc_poll+0xc80/0x17b0 [ 75.143272] __napi_poll+0x27/0x170 [ 75.147192] net_rx_action+0x234/0x280 [75.151409] __do_softirq+0xef/0x2f4 [ 75.155424] irq_exit_rcu+0xc7/0x110 [ 75.159432] common_interrupt+0xb8/0xd0 [ 75.163748] </IRQ> [ 75.166112] <TASK> [ 75.168473] asm_common_interrupt+0x22/0x40 [ 75.173175] RIP: 0010:cpuidle_enter_state+0xe2/0x350 [ 75.178749] Code: 85 c0 0f 8f 04 02 00 00 31 ff e8 39 6c 67 ff 45 84 ff 74 12 9c 58 f6 c4 02 0f 85 50 02 00 00 31 ff e8 52 b0 6d ff fb 45 85 f6 <0f> 88 b1 00 00 00 49 63 ce 4c 2b 2c 24 48 89 c8 48 6b d1 68 48 c1 [ 75.199757] RSP:
0018:ffff9948c013bea8 EFLAGS: 00000202 [ 75.205614] RAX: ffff8e4e8fb00000 RBX: ffffb948bfd23900 RCX:
000000000000001f [ 75.213619] RDX: 0000000000000004 RSI: ffffffff94206161 RDI: ffffffff94212e20 [75.221620] RBP: 0000000000000004 R08: 000000117568973a R09: 0000000000000001 [ 75.229622] R10:
000000000000afc8 R11: ffff8e4e8fb29ce4 R12: ffffffff945ae980 [ 75.237628] R13: 000000117568973a R14:
0000000000000004 R15: 0000000000000000 [ 75.245635] ? ---truncated--- (CVE-2023-52580)

- Linux カーネルの netfilter: nf_tables コンポーネントに存在するメモリ解放後使用 (Use After Free) の脆弱性が悪用されると、ローカルの権限昇格が達成される可能性があります。nft_verdict_init() 関数は、フック判定内のドロップエラーとして正の値を許可するため、NF_ACCEPT に似たドロップエラーで NF_DROP が発行された場合、nf_hook_slow() 関数は二重解放の脆弱性を引き起こす可能性があります。過去のコミット f342de4e2f33e0e39165d8639387aa6c19dff660 へのアップグレードを推奨します。(CVE-2024-1086)

- Linux カーネルで、次の脆弱性が解決されました。ip6_tunnel: ip6_tnl_parse_tlv_enc_lim() の NEXTHDR_FRAGMENT 処理を修正します syzbot が NEXTHDR_FRAGMENT 処理が破損していると指摘しました [1]。
frag_off の読み取りは、skb->head に十分なバイトをプルした場合にのみ実行できます。現在、ガベージにアクセスする可能性があります。[1] BUG: KMSAN: uninit-value in ip6_tnl_parse_tlv_enc_lim+0x94f/0xbb0 ip6_tnl_parse_tlv_enc_lim+0x94f/0xbb0 ipxip6_tnl_xmit net/ipv6/ip6_tunnel.c:1326 [inline] ip6_tnl_start_xmit+0xab2/0x1a70 net/ipv6/ip6_tunnel.c:1432 __netdev_start_xmit include/linux/netdevice.h:4940 [inline] netdev_start_xmit include/linux/netdevice.h:4954 [inline] xmit_one net/core/dev.c:3548 [inline] dev_hard_start_xmit+0x247/0xa10 net/core/dev.c:3564
__dev_queue_xmit+0x33b8/0x5130 net/core/dev.c:4349 dev_queue_xmit include/linux/netdevice.h:3134 [inline] neigh_connected_output+0x569/0x660 net/core/neighbour.c:1592 neigh_output include/net/neighbour.h:542 [inline] ip6_finish_output2+0x23a9/0x2b30 net/ipv6/ip6_output.c:137 ip6_finish_output+0x855/0x12b0 net/ipv6/ip6_output.c:222 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip6_output+0x323/0x610 net/ipv6/ip6_output.c:243 dst_output include/net/dst.h:451 [inline] ip6_local_out+0xe9/0x140 net/ipv6/output_core.c:155 ip6_send_skb net/ipv6/ip6_output.c:1952 [inline] ip6_push_pending_frames+0x1f9/0x560 net/ipv6/ip6_output.c:1972 rawv6_push_pending_frames+0xbe8/0xdf0 net/ipv6/raw.c:582 rawv6_sendmsg+0x2b66/0x2e70 net/ipv6/raw.c:920 inet_sendmsg+0x105/0x190 net/ipv4/af_inet.c:847 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] ____sys_sendmsg+0x9c2/0xd60 net/socket.c:2584 ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638
__sys_sendmsg net/socket.c:2667 [inline] __do_sys_sendmsg net/socket.c:2676 [inline] __se_sys_sendmsg net/socket.c:2674 [inline] __x64_sys_sendmsg+0x307/0x490 net/socket.c:2674 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x44/0x110 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Uninit was created at: slab_post_alloc_hook+0x129/0xa70 mm/slab.h:768 slab_alloc_node mm/slub.c:3478 [inline] __kmem_cache_alloc_node+0x5c9/0x970 mm/slub.c:3517
__do_kmalloc_node mm/slab_common.c:1006 [inline] __kmalloc_node_track_caller+0x118/0x3c0 mm/slab_common.c:1027 kmalloc_reserve+0x249/0x4a0 net/core/skbuff.c:582 pskb_expand_head+0x226/0x1a00 net/core/skbuff.c:2098 __pskb_pull_tail+0x13b/0x2310 net/core/skbuff.c:2655 pskb_may_pull_reason include/linux/skbuff.h:2673 [inline] pskb_may_pull include/linux/skbuff.h:2681 [inline] ip6_tnl_parse_tlv_enc_lim+0x901/0xbb0 net/ipv6/ip6_tunnel.c:408 ipxip6_tnl_xmit net/ipv6/ip6_tunnel.c:1326 [inline] ip6_tnl_start_xmit+0xab2/0x1a70 net/ipv6/ip6_tunnel.c:1432 __netdev_start_xmit include/linux/netdevice.h:4940 [inline] netdev_start_xmit include/linux/netdevice.h:4954 [inline] xmit_one net/core/dev.c:3548 [inline] dev_hard_start_xmit+0x247/0xa10 net/core/dev.c:3564
__dev_queue_xmit+0x33b8/0x5130 net/core/dev.c:4349 dev_queue_xmit include/linux/netdevice.h:3134 [inline] neigh_connected_output+0x569/0x660 net/core/neighbour.c:1592 neigh_output include/net/neighbour.h:542 [inline] ip6_finish_output2+0x23a9/0x2b30 net/ipv6/ip6_output.c:137 ip6_finish_output+0x855/0x12b0 net/ipv6/ip6_output.c:222 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip6_output+0x323/0x610 net/ipv6/ip6_output.c:243 dst_output include/net/dst.h:451 [inline] ip6_local_out+0xe9/0x140 net/ipv6/output_core.c:155 ip6_send_skb net/ipv6/ip6_output.c:1952 [inline] ip6_push_pending_frames+0x1f9/0x560 net/ipv6/ip6_output.c:1972 rawv6_push_pending_frames+0xbe8/0xdf0 net/ipv6/raw.c:582 rawv6_sendmsg+0x2b66/0x2e70 net/ipv6/raw.c:920 inet_sendmsg+0x105/0x190 net/ipv4/af_inet.c:847 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] ____sys_sendmsg+0x9c2/0xd60 net/socket.c:2584 ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638
__sys_sendmsg net/socket.c:2667 [inline] __do_sys_sendms ---truncated--- (CVE-2024-26633)

- Linux カーネルの nf_tables の net/netfilter/nft_dynset.c の nft_dynset_init() に、NULL ポインターデリファレンスの脆弱性が見つかりました。この問題により、CAP_NET_ADMIN ユーザー権限を持つローカルの攻撃者がサービス拒否を引き起こす可能性があります。(CVE-2023-6622)

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

- 6.6.8 までの Linux カーネルの net/bluetooth/af_bluetooth.c の bt_sock_recvmsg には、bt_sock_ioctl の競合状態によるメモリ解放後使用 (Use After Free) があります。(CVE-2023-51779)

- Linux カーネルでは、次の脆弱性が解決されています。perf/x86/lbr: vsyscall アドレスにフィルターを適用します。LBR サンプリングがアクティブな間に vsyscall が行われると、パニックが発生する可能性があることがわかりました。perf サンプリングのために vsyscall が中断された場合 (NMI)、この呼び出しシーケンスが発生する可能性があります (最新が先頭)。
__insn_get_emulate_prefix() insn_get_emulate_prefix() insn_get_prefixes() insn_get_opcode() decode_branch_type() get_branch_type() intel_pmu_lbr_filter() intel_pmu_handle_irq() perf_event_nmi_handler() Within __insn_get_emulate_prefix() at frame 0, a macro is called:
peek_nbyte_next(insn_byte_t, insn, i) このマクロ内では、この逆参照が発生します。(insn)->next_byte この時点でレジスタを検査する場合、next_byte フィールドの値は、作成された vsyscall のアドレスです。たとえば、gettimeofday() の vsyscall バージョンの場所は 0xffffffffff600000 です。vsyscall 領域のアドレスにアクセスすると、処理されないページ障害により、oops がトリガーされます。このバグを修正するために、ブランチタイプを決定するときに vsyscalls のフィルタリングを行うことができます。このパッチは、カーネルアドレスが vsyscall 領域にあることが判明した場合に、none ブランチを返します。(CVE-2023-52476)

- Linux カーネルでは、次の脆弱性が解決されています。team: チームのデバイスタイプが変更される際に、null-ptr-deref を修正します。再生装置 [1] で次のように null-ptr-deref バグを取得します。BUG: kernel NULL pointer dereference, address: 0000000000000228 ... RIP: 0010:vlan_dev_hard_header+0x35/0x140 [8021q] ... Call Trace: <TASK> ? __die+0x24/0x70 ? page_fault_oops+0x82/0x150 ? exc_page_fault+0x69/0x150 ? asm_exc_page_fault+0x26/0x30 ? vlan_dev_hard_header+0x35/0x140 [8021q] ? vlan_dev_hard_header+0x8e/0x140 [8021q] neigh_connected_output+0xb2/0x100 ip6_finish_output2+0x1cb/0x520 ? nf_hook_slow+0x43/0xc0 ? ip6_mtu+0x46/0x80 ip6_finish_output+0x2a/0xb0 mld_sendpack+0x18f/0x250 mld_ifc_work+0x39/0x160 process_one_work+0x1e6/0x3f0 worker_thread+0x4d/0x2f0 ? __pfx_worker_thread+0x10/0x10 kthread+0xe5/0x120 ?
__pfx_kthread+0x10/0x10 ret_from_fork+0x34/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 [1] $ teamd -t team0 -d -c '{runner: {name: loadbalance}}' $ ip link add name t-dummy type dummy $ ip link add link t-dummy name t-dummy.100 type vlan id 100 $ ip link add name t-nlmon type nlmon $ ip link set t-nlmon master team0 $ ip link set t-nlmon nomaster $ ip link set t-dummy up $ ip link set team0 up $ ip link set t-dummy.100 down $ ip link set t-dummy.100 master team0 チームデバイスに vlan デバイスをスレーブし、チームデバイスのタイプが non-ether から ether に変更されると、チームデバイスの header_ops が vlan_header_ops に変更されます。これは正しくなく、チームデバイスが vlan デバイスではないため、vlan_dev_hard_header() で vlan->real_dev に対して null-ptr-deref が発生します。team_setup() で eth_header_ops をキャッシュしてから、タイプが non-ether から ether に変更されたときに、キャッシュされた header_ops をチームネットデバイスの header_ops に割り当てて、バグを修正します。(CVE-2023-52574)

- Linux カーネルでは、次の脆弱性が解決されています。net: tls: 部分的な読み取りと非同期復号化での use-after-free を修正します。tls_decrypt_sg は、clear_skb からのページを参照しないため、tls_decrypt_done の put_page() がそれらを解放し、部分的に読み取られた skb から読み取ろうとすると、process_rx_list で use-after-free が発生します。(CVE-2024-26582)

- Linux カーネルでは、次の脆弱性は解決されています。sched/membarrier: sys_membarrier を攻撃する機能が低下します。一部のシステムでは、sys_membarrier が非常に負荷が高く、すべてにおいて全体的な速度低下を引き起こす可能性があります。そのため、アクセスをシリアル化するためにパスにロックを設定し、これが高すぎる頻度で呼び出されてマシンを飽和する機能を回避します。(CVE-2024-26602)

- 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 カーネルで、次の脆弱性が解決されました。netfilter: nf_tables: 匿名セットのタイムアウトを許可しない ユーザー空間から決して使用されず、これらのパラメーターを許可しません。(CVE-2023-52620)

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

ソリューション

影響を受けるパッケージを更新してください。

参考資料

https://linux.oracle.com/errata/ELSA-2024-2394.html

プラグインの詳細

深刻度: Critical

ID: 195036

ファイル名: oraclelinux_ELSA-2024-2394.nasl

バージョン: 1.2

タイプ: local

エージェント: unix

公開日: 2024/5/6

更新日: 2024/5/30

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

リスク情報

VPR

リスクファクター: Critical

スコア: 9.6

CVSS v2

リスクファクター: Medium

基本値: 4.8

現状値: 4.2

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

CVSS スコアのソース: CVE-2020-26555

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 9.4

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

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

CVSS スコアのソース: CVE-2023-25775

脆弱性情報

CPE: p-cpe:/a:oracle:linux:kernel-tools-libs-devel, p-cpe:/a:oracle:linux:rtla, p-cpe:/a:oracle:linux:kernel-devel, p-cpe:/a:oracle:linux:kernel-cross-headers, p-cpe:/a:oracle:linux:kernel-debug-modules, cpe:/a:oracle:linux:9:4:appstream_base, p-cpe:/a:oracle:linux:kernel-tools, p-cpe:/a:oracle:linux:rv, p-cpe:/a:oracle:linux:kernel-debug-devel, cpe:/a:oracle:linux:9::appstream, cpe:/o:oracle:linux:9, p-cpe:/a:oracle:linux:kernel-headers, p-cpe:/a:oracle:linux:kernel-debug-uki-virt, p-cpe:/a:oracle:linux:kernel-debug-modules-core, p-cpe:/a:oracle:linux:kernel-modules, p-cpe:/a:oracle:linux:kernel-debug-devel-matched, p-cpe:/a:oracle:linux:kernel-abi-stablelists, cpe:/a:oracle:linux:9::codeready_builder, p-cpe:/a:oracle:linux:kernel-devel-matched, p-cpe:/a:oracle:linux:kernel-debug, p-cpe:/a:oracle:linux:kernel-core, p-cpe:/a:oracle:linux:kernel-modules-core, p-cpe:/a:oracle:linux:kernel-uki-virt, p-cpe:/a:oracle:linux:libperf, p-cpe:/a:oracle:linux:kernel-debug-modules-extra, p-cpe:/a:oracle:linux:python3-perf, p-cpe:/a:oracle:linux:bpftool, p-cpe:/a:oracle:linux:kernel-debug-core, cpe:/o:oracle:linux:9:4:baseos_base, p-cpe:/a:oracle:linux:perf, p-cpe:/a:oracle:linux:kernel-modules-extra, cpe:/o:oracle:linux:9::baseos_latest, p-cpe:/a:oracle:linux:kernel-tools-libs, p-cpe:/a:oracle:linux:kernel

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

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

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

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

脆弱性公開日: 2021/5/24

CISA の既知の悪用された脆弱性の期限日: 2024/6/20

エクスプロイト可能

Core Impact

参照情報

CVE: CVE-2020-26555, CVE-2022-0480, CVE-2022-38096, CVE-2022-45934, CVE-2023-24023, CVE-2023-25775, CVE-2023-28464, CVE-2023-28866, CVE-2023-31083, CVE-2023-3567, CVE-2023-37453, CVE-2023-39189, CVE-2023-39193, CVE-2023-39194, CVE-2023-39198, CVE-2023-4133, CVE-2023-42754, CVE-2023-42756, CVE-2023-45863, CVE-2023-46862, CVE-2023-51043, CVE-2023-51779, CVE-2023-51780, CVE-2023-52434, CVE-2023-52448, CVE-2023-52476, CVE-2023-52489, CVE-2023-52522, CVE-2023-52529, CVE-2023-52574, CVE-2023-52578, CVE-2023-52580, CVE-2023-52581, CVE-2023-52610, CVE-2023-52620, CVE-2023-6040, CVE-2023-6121, CVE-2023-6176, CVE-2023-6531, CVE-2023-6546, CVE-2023-6622, CVE-2023-6915, CVE-2023-6931, CVE-2023-6932, CVE-2024-0565, CVE-2024-0841, CVE-2024-1085, CVE-2024-1086, CVE-2024-26582, CVE-2024-26583, CVE-2024-26584, CVE-2024-26585, CVE-2024-26586, CVE-2024-26593, CVE-2024-26602, CVE-2024-26609, CVE-2024-26633

IAVA: 2023-A-0638-S