読み込んでいます…
脆弱性情報(JVN)
JVN(IPA/JPCERT/CC 提供)の脆弱性情報 294,721 件を、製品・ベンダ・脆弱性タイプ(CWE)で 全文検索し、深刻度(CVSS)で絞り込めます。発表日の新しい順。各タイトルから詳細(CVSS内訳・関連脆弱性)へ。
深刻度 High 種別 解放済みメモリの使用 の検索結果:1,161–1,200 件目を表示(ページ 30)
深刻度は CVSS(共通脆弱性評価システム・0〜10 のスコア)に基づく区分:Critical 9.0以上/High 7.0〜8.9/Medium 4.0〜6.9/Low 0.1〜3.9。
Linuxカーネルにおいて、以下の脆弱性が修正されました。netfilterのconntrackに関するnf_ct_helper_hashのUse-After-Freeを回避しています。nf_conntrack_init_start()が失敗した場合(例えばregister_nf_conntrack_bpf()の失敗による)、nf_conntrack_helper_fini()のクリーンアップパスでnf_ct_helper_hashマップが解放されます。NF_CONNTRACK=yでビルドされた場合、他のnetfilterモジュール(例:netfilter_conntrack_ftp)が依然としてロードされ、nf_conntrackが正しく初期化されているかに関わらずnf_conntrack_helpers_register()を呼び出すことが可能です。これによりnf_ct_helper_hashのダングリングポインタにアクセスしてUse-After-Freeが発生し、ランダムなメモリ破損を引き起こす可能性があります。このパッチは、解放済みまたは未初期化のnf_ct_helper_hashポインタにnf_conntrack_helper_register()がアクセスするのを防止し、conntrackモジュールのロード時に発生しうるUse-After-Freeを修正します。
Linuxカーネルにおいて、以下の脆弱性が修正されました:fs/ntfs3におけるデータランオフセットの検証強化です。この修正により、データランオフセットに対する整合性チェックが追加されました。データランオフセットが正当であることを確認せずに展開しようとすると、use-after-freeや予期しないメモリアクセスが発生する可能性があります。
Linuxカーネルのmediaサブシステムに存在する脆弱性が修正されました。この脆弱性はsi470xドライバのsi470x_int_in_callback()関数内にあるuse-after-freeの問題です。誤って解放されたメモリにアクセスする可能性があります。この問題は、si470x_start_usb()関数が失敗した場合にUSBリクエストブロック(URB)を停止せずに構造体を解放することで発生します。パッチでは失敗時にURBを適切に停止する処理が追加され、不正なメモリアクセスの問題を修正しました。
はい。製品・ベンダ・脆弱性タイプ(CWE)で全文検索し、深刻度(CVSS)で絞り込めます。発表日の新しい順に表示します。
脆弱性の深刻さを0〜10で表す共通指標です。数値が大きいほど影響が大きく、緊急・重要・警告・注意などの区分で絞り込めます。
各脆弱性の詳細ページで、影響を受ける製品・ベンダを確認できます。ベンダ名は法人検索と突き合わせて企業情報もたどれます。
JVN(IPA〔情報処理推進機構〕・JPCERT/CC 提供)の公開情報を収録しています。対応の要否は必ず各JVN詳細・公式情報でご確認ください。
出典:JVN(Japan Vulnerability Notes・独立行政法人情報処理推進機構(IPA)/JPCERT コーディネーションセンター/jvn.jp)を加工して作成。 全文検索は当サイト収録分(全294,721件)を対象とし、発表日の新しい順に表示しています。 本情報の最新性・正確性・完全性は保証されません。詳細は各 JVN 詳細ページをご確認ください。 なお本情報は製品・ソフトウェアの脆弱性に関するものであり、特定の法人・製品ベンダの評価や信用性を示すものではありません。
Linuxカーネルには、blk-mqにおいてキューの再初期化時にクワイエスしたエレベータースイッチを使用しないことによる脆弱性が存在しました。hctxのrun_workはハードウェアキューの再初期化時にエレベータースイッチと競合する可能性があります。この状況ではキューは単にフリーズされているだけで、リクエストの割り当てを防ぎますが、hctxのワークの実行は止まりません。その結果、ワークが解体されている可能性があるエレベーターポインタを取得し、use-after-freeエラーやカーネルパニックを引き起こす恐れがあります。本修正ではクワイエスしたエレベータースイッチを使用し、以前のものはstaticに変更しました。
cameraispにおいて、解放後使用の脆弱性により権限が昇格する可能性があります。これは、悪意のある攻撃者がすでにシステム権限を取得している場合に、ローカルでサービス拒否(DoS)を引き起こす可能性があります。エクスプロイトにはユーザーの操作は不要です。パッチIDはALPS10351676、問題IDはMSV-5737です。
Linuxカーネルにおいて、以下の脆弱性が修正されました:fs: dlm: midcomms_commitにおけるuse-after-freeの修正です。softirqコンテキストでdlmメッセージの処理を行っている際に、KASANのuse-after-free警告が検出されました。[ 151.760477] ==================================================================[ 151.761803] BUG: KASAN: dlm_midcomms_commit_mhandle+0x19d/0x4b0でのuse-after-freeが発生しました。[ 151.763414] タスクlock_torture/1347によるアドレスffff88811a980c60の4バイト読み取りがありました。[ 151.765284] CPU: 7 PID: 1347 Comm: lock_torture タイムスタンプ6.1.0-rc4+ #2828[ 151.766778] ハードウェア: Red Hat KVM/RHEL-AV, BIOS 1.16.0-3.module+el8.7.0+16134+e5908aa2 04/01/2014[ 151.768726] コールトレース:(省略)上記の問題は、dlmのmidcomms_commit機能によって解放されたメモリを使用していたことが原因です。この脆弱性は、ロックマネージメントの信頼性と安全性を損なう恐れがあります。修正により、解放後のメモリ使用が防止され、安定した動作が保証されます。
Linuxカーネルにおいて、以下の脆弱性が修正されました。clk: microchip: auxdevのリリースコールバックで潜在的なUse-After-Free(UAF)が発生する問題を修正しました。commit 1c11289b34ab("peci: cpu: adev_release()におけるUse-After-Freeの修正")と同様に、補助デバイスが正しい順序で破棄されていませんでした。auxiliary_device_add()が失敗した場合、リリースコールバックが2回呼び出されてUAFが発生します。タイミングの問題から、このドライバーのauxdevコードは前述のコミットから着想を得ており、そのため同様のバグも存在していました。auxiliary_device_uninit()を登録解除のコールバックに移動することで、この問題を回避しています。
Linuxカーネルにおいて、octeon_epドライバのプローブエラーパスでキューイングされたワークのキャンセルが適切に行われない脆弱性が修正されました。デバイスのMACアドレスの取得に失敗すると、octep_probe関数はキャンセルされない遅延ワークであるintr_poll_taskをキューに残したまま終了し、その後このワークが実行される際に解放後使用の問題が発生する可能性がありました。対策として、intr_poll_taskのキャンセル処理をoctep_removeからoctep_device_cleanupに移動し、これによりエラーパスでも適切にキャンセルされるようにしました。また、ctrl_mbox_taskのキャンセルはintr_poll_taskのキャンセル後に行う必要があることも修正しました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。ASoC:lpassにおけるKASANのuse-after-freeおよび境界外参照の問題を修正しました。syzkallerを実行すると、以下の境界外エラーが発生していました。"KASAN: slab-out-of-bounds Read in regcache_flat_read"という問題のバックトレースは以下の通りです。BUG: KASAN: slab-out-of-bounds in regcache_flat_read+0x10c/0x110 サイズ4の読み取りがアドレスfffffff8088fbf714でタスクsyz-executor.4/14144によって行われました。CPU: 6 PID: 14144 実行ファイル: syz-executor.4 Tainted: G W ハードウェア名: Qualcomm Technologies, Inc. sc7280 CRDプラットフォーム(rev5+)(DT) コールトレース: dump_backtrace+0x0/0x4ec show_stack+0x34/0x50 dump_stack_lvl+0xdc/0x11c print_address_description+0x30/0x2d8 kasan_report+0x178/0x1e4 __asan_report_load4_noabort+0x44/0x50 regcache_flat_read+0x10c/0x110 regcache_read+0xf8/0x5a0 _regmap_read+0x45c/0x86c _regmap_update_bits+0x128/0x290 regmap_update_bits_base+0xc0/0x15c snd_soc_component_update_bits+0xa8/0x22c snd_soc_component_write_field+0x68/0xd4 tx_macro_put_dec_enum+0x1d0/0x268 snd_ctl_elem_write+0x288/0x474 エラーチェックおよび有効な値の検証を行うことにより、この問題を修正しました。
Linuxカーネルにおいて、bpf_refcount_acquire関数が非所有参照に対して失敗を返す可能性がある問題が修正されました。この脆弱性は、bpf_rbtree_addおよびlist_push_frontやlist_push_back関数の失敗時の処理が非所有参照に対するbpf_refcount_acquireの仮定を破壊したことに起因します。具体的には、あるbpfノードの追加が失敗し、そのノードの参照カウントが0に達して解放されると、後続でbpf_refcount_acquireが0の参照カウントを増加させようとして不正な動作が発生する可能性がありました。この問題を受けて、bpf_refcount_acquireは参照カウントがゼロでない場合にのみインクリメントするように修正されました。また、所有参照に対してはこの失敗が発生しないことが検証され、関連するセルフテストも更新されています。この修正により、use-after-freeなどの潜在的なセキュリティ問題が防止されます。
Linuxカーネルにおいて、以下の脆弱性が修正されました。Bluetoothのhci_eventにおいて、connを削除する前に切断コールバックを呼び出すよう修正されました。hci_cs_disconnect関数内では切断が失敗してもhci_conn_delを実行していました。ISO、L2CAP、SCO接続はhci_conn_getを使用せずにhci_connを参照しているため、disconn_cfmを呼び出して接続をクリーンアップしなければ、use-after-freeが発生します。ISO接続では接続削除後にiso_sock_sendmsgでNULLポインタ参照によるカーネルパニックが発生していました。L2CAP接続でも、hci_send_acl呼び出し時にKASANによるuse-after-freeエラーが検出されました。本脆弱性はBluetooth接続の切断処理時にメモリ管理が不適切になる問題を引き起こし、その結果システムのクラッシュや不正動作が発生する可能性がありました。
Google Chrome 144.0.7559.59以前のANGLEにおけるUse after freeの脆弱性により、リモート攻撃者は細工されたHTMLページを介してヒープ破損を悪用する可能性がありました。
quickjs-ngおよびquickjsのバージョン0.11.0までに脆弱性が検出されました。影響を受けるのは、コンポーネントAtomics Ops Handlerのquickjs.cファイル内にある不明な関数です。この操作によりUse After Free脆弱性が発生します。攻撃はリモートで実行可能であり、エクスプロイトが既に公開されているため悪用される可能性があります。パッチはea3e9d77454e8fc9cb3ef3c504e9c16af5a80141として識別されており、この問題を解決するためにパッチの適用が推奨されます。
レイアウト:スクロールおよびオーバーフローコンポーネントにおいてUse-after-freeの脆弱性が存在します。この脆弱性はFirefoxのバージョン147.0.2未満に影響を及ぼします。
特権のないユーザーとしてインストールおよび実行されるソフトウェアが、不適切なGPUシステムコールを行うことで参照カウントの誤管理を引き起こし、潜在的なUse After Freeの原因となる可能性があります。不適切な参照カウント管理により内部リソースが誤って操作され、Use After Freeが発生するシナリオが確認されました。
NanoMQ MQTTブローカー(NanoMQ)はエッジメッセージングプラットフォームです。バージョン0.24.2以前には、サブ情報リストに関する典型的なデータ競合の問題があり、その結果ヒープ使用後解放によるクラッシュが発生する可能性がありました。この問題はバージョン0.24.2で修正されました。
特権のないユーザーとしてインストールおよび実行されるソフトウェアが、不適切なGPUシステムコールを行い、リソースの参照カウントを誤って管理しました。その結果、潜在的な解放後の使用(Use After Free)シナリオが発生する可能性があります。内部リソースにおける不適切なリソース管理と参照カウントの問題が原因で、潜在的な書き込みの解放後の使用シナリオが存在していました。
ビデオセッションのオープンがタイムアウトエラーで失敗した場合、ビデオ再生中にメモリ破損が発生します。
モードを設定するためのIOCTL呼び出しの処理中にメモリ破損が発生します。
HDCPセッションの終了時にメモリ破損が発生します。
Linuxカーネルにおいて、以下の脆弱性が修正されました。octeontx2-pfのotx2_sync_tstamp()におけるuse-after-freeバグを修正しました。元のコードはotx2_ptp_destroy()内のcancel_delayed_work()に依存していましたが、これは遅延作業項目であるsynctstamp_workが既に実行中であった場合に完全に終了したことを保証しません。そのため、otx2_ptp_destroy()でotx2_ptpが解放される一方で、synctstamp_workが依然としてアクティブであり、otx2_sync_tstamp()内でotx2_ptpを参照しようとするuse-after-freeの状況が発生していました。加えて、synctstamp_workは周期的に動作するため、このバグが発生する確率は無視できません。典型的な競合状態は以下の通りです。CPU 0(クリーンアップ)ではotx2_remove()が呼ばれ、その中でotx2_ptp_destroy()がcancel_delayed_work()とkfree(ptp)を実行します。一方、CPU 1(遅延作業コールバック)ではotx2_sync_tstamp()がptp = container_of(...)でuse-after-freeを起こし、ptp-にアクセスしようとします。これはKASANレポートにより確認されています。バグはcancel_delayed_work()をcancel_delayed_work_sync()に置き換えることで、遅延作業項目が正しくキャンセルされた後にotx2_ptpが解放されることを保証し、修正されました。このバグは最初に静的解析で特定されました。再現とテストのため、QEMUでOcteonTX2 PCIデバイスをシミュレートし、otx2_sync_tstamp()関数内に人工的な遅延を導入してバグの発生率を高めました。
Linuxカーネルにおいて、以下の脆弱性が修正されました:block、bfqに関する「bfqq-bic」の使用後解放(UAF)の可能性です。テストではバージョン5.10で「bfqq-bic」に関する使用後解放が報告されています。詳細は、KASANによりbfq_select_queue関数内でUAFが検出され、特にプロセス移動に伴い新しいbfqqが割り当てられる変更(コミット3bc5e683c67d)において、古いbfqqと新しいbfqqが同じbicを指す場合がありました。具体的には、最初に同じcgroupに属する2つのプロセスがそれぞれbfqqを持ちます。次にbfqq1がbfqq2にマージされ、その後プロセスが終了し新たなI/Oを発行する過程で、プロセスを別のcgroupに移動し新たなbfqq3を割り当てた際に、bfqq2とbfqq3の両方が同じBIC2を指す状態が発生しました。全てのリクエストが完了した後にプロセスが終了すると、BIC2が解放されますが、bfqq2がBIC2解放前に解放される保証がないため、UAFが発生します。この問題は、bfqqがbicから切り離される際にbfqq-bicをクリアすることで修正されました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。virtio-mmioに関する問題で、vm_devのライフサイクルが壊れていました。vm_devは'struct device'を内包しているため、リリースコールバックを持つことが正しい動作です。しかし、devresでvm_dev構造体を割り当てるとこの保護機構が完全に崩れてしまいます。プラットフォームデバイスが削除されると、vm_devのリリースコールバックを待つ代わりにメモリが解放され、最終的にコールバックが呼ばれたときにuse-after-freeが発生します。問題を簡単に確認するには、CONFIG_DEBUG_KOBJECT_RELEASEを有効にしてカーネルをコンパイルし、sysfsでバインドを解除してください。修正は簡単で、このケースではdevresを使用しないことです。この問題はオブジェクトのライフタイム問題に関する調査中に発見されました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。drbdのhandle_write_conflictsで欠落していたkref_getが追加されました。"two-primaries"が有効な場合、DRBDは同時書き込みを検出して書き込み競合を処理し、両ノードで同じセクターに同時に書き込んでも、書き込み完了後には同一のデータにします。"superseded"書き込みの処理時にkref_getを忘れており、その結果、drbd_destroy_deviceが早期に呼び出され、解放後の使用が発生し、さらにその結果としてカーネルクラッシュが引き起こされていました。関連情報として、DRBDをランダムデータ生成器として使用すべきではありません。"two-primaries"ユーザーはすべて上位層で同時書き込みを正しく処理しています。つまり、クラスター型ファイルシステムは分散ロックマネージャーを使用し、仮想化環境のライブマイグレーションは一方のノードでの書き込みを停止してから他方のノードで書き込みを開始します。したがって、"テストケース"以外では、このコードパスは実際には通らないことを意味します。参考までに、DRBD 9では現在これらの処理が異なり、"書き込み競合"は検出するものの賢く処理せず、厳しく切断しています。上位層は同時書き込みを送信してはならず、もし送信した場合はそれは上位層の問題とみなされます。
Linuxカーネルにおいて、以下の脆弱性が修正されました。dm_cacheのdestroy()関数内に存在していたUse-After-Free(UAF)の問題を修正しました。また、dm_cacheはdm_resume()とdm_destroy()が同時に実行される場合にも同様のUAF問題がありました。そこで、destroy()関数内でタイマーを再度キャンセルする処理を追加しました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。Bluetoothにおけるsco_sock_timeoutによって引き起こされるuse-after-freeのバグを修正しました。sco接続が確立された後、scoソケットが解放されるとtimeout_workがスケジュールされ、scoの切断がタイムアウトかどうかを判断します。ソケットは後で解放されますが、sco_sock_timeout内で再び参照されます。その結果、use-after-freeのバグが発生します。根本的な原因は、CleanupスレッドとWorkerスレッド間での操作により、sco_sock_release - sco_sock_close - __sco_sock_close - sco_sock_set_timer - schedule_delayed_work、そしてsco_sock_killでsock_put(sk)が実行されメモリが解放される一方、Workerスレッドのsco_sock_timeoutでsock_hold(sk)が使用されることにあります。POCによってトリガーされたKASANレポートには、sco_sock_timeoutでのslab-use-after-freeの詳細なスタックトレースが示されています。解放済みの1024バイト領域の内部128バイトのアドレスに4バイトの書き込みが行われたことも報告されました。これにより、BluetoothのSCOソケットに関連するメモリ解放後の不正なアクセスによる脆弱性が判明し、今回修正されました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。tipcのエラーパスにおけるUse-After-Free(UAF)の問題です。Sam Page(sam4k)とTrend Micro Zero Day Initiativeによって報告されたtipc_buf_append()のエラーパスにおけるUAFは、KASANによりkfree_skb_list_reason関数内でのスラブ使用後解放(use-after-free)が検出されました。発生箇所はlinux/net/core/skbuff.cの1183行目です。この脆弱性はtask pocによってアドレスffff88804d2a7c80から8バイトの読み取りが行われた際に明らかになりました。トレースログに示されている通り、skbの解放処理(kfree_skb等)が錯綜し、エラー処理経路で既に解放されたメモリを参照していました。この脆弱性はtipcバッファのappend処理中に発生し、悪用されるとメモリ破壊やカーネルの予期しない挙動を引き起こす恐れがあります。修正はtipcのエラーパスにおいて適切なメモリ管理を行うことでUAFの発生を防止しています。
Linuxカーネルにおいて、以下の脆弱性が修正されました。tcp: tcp_twsk_unique()内でrefcount_inc_not_zero()を使用します。Anderson Nascimentoは、tcp_twsk_unique()におけるUse-after-freeの脆弱性を詳細な解析とともに報告しました。コミットec94c2696f0b("tcp/dccp: timewaitハッシュダンスのための1回のアトミック操作を回避")以降、inet_twsk_hashdance()はTIME-WAITソケットをehashに入れ、バケットロックを解放した後にsk_refcntを設定しています。したがって、connect()中に他のスレッドがポートの再利用を試み、refcntが0のTIME-WAITソケットに対してtcp_twsk_unique()内でsock_hold()を呼び出す可能性がある小さな競合状態があります。もしそれが発生すると、tcp_twsk_unique()で取得したrefcntが上書きされ、sock_put()がアンダーフローを引き起こし、他の場所で実際のUse-after-freeを誘発します。Use-after-freeを避けるために、tcp_twsk_unique()内でrefcount_inc_not_zero()を使用し、falseを返した場合はポートの再利用を諦める必要があります。[0]: refcount_t: 0への加算によるuse-after-freeが発生します。警告: CPU: 0 PID: 1039313 at lib/refcount.c:25 refcount_warn_saturate+0xe5/0x110 CPU: 0 PID: 1039313 コマンド: trigger このカーネルは未改造ではありません。バージョンは6.8.6-200.fc39.x86_64 #1です。ハードウェア名はVMware, Inc. VMware20,1/440BX Desktop Reference Platformで、BIOSはVMW201.00V.21805430.B64.2305221830(2023年5月22日)です。RIPは0010:refcount_warn_saturate+0xe5/0x110です。以下は省略し、詳細なコールトレース等があります。
Linuxカーネルにおいて、以下の脆弱性が修正されました。xfrmのdecode_session6におけるスラブ使用後解放(use-after-free)の問題です。xfrmデバイスがsfbタイプのqdiscに設定されている場合、送信されたskbのcbフィールドがエンキュー中に変更されることがあります。これにより、xfrmデバイスがIPv6パケットを送信する際にスラブ使用後解放が発生する可能性があります。以下に関連するスタック情報の一部を示します。BUG: KASAN: decode_session6でのスラブ使用後解放です。呼び出しトレースが示すように、decode_session6は元々受信パスのために設計されており、送信中はIP6CB(skb)-nhoffが設定されません。そのため、パケット送信前にskbのcbフィールドを0に設定する修正が加えられました。コミットf855691975bb("xfrm6: Fix the nexthdr offset in _decode_session6.")によりこの問題が明確にされ、この修正によって送信時に発生するuse-after-freeのリスクが軽減されています。
Linuxカーネルにおいて、以下の脆弱性が修正されました。RDMA/bnxt_reに関しては、UAFを回避するためにib_device_unalloc()の呼び出し順序を適切に修正しました。ib_dealloc_device()はデバイスのクリーンアップ後にのみ呼び出される必要があります。解放シーケンスを修正しました。
Linuxカーネルにおける脆弱性が修正されました。__mark_inode_dirty()関数でのuse-after-freeの問題は、inodeのスピンロックを適切に保持することで解決されました。これにより、書き込みバックの競合状態が防止され、システムの安定性とセキュリティが向上しました。
IPCコンポーネントにおけるUse-after-freeの脆弱性です。この脆弱性はFirefox 147未満、Firefox ESR 115.32未満、Firefox ESR 140.7未満、Thunderbird 147未満、およびThunderbird 140.7未満に影響します。
Linuxカーネルのdrm/msmドライバにおいて、プローブ遅延によるuse-after-freeの脆弱性が修正されました。この問題は、DRMデバイスの解体時にブリッジカウンターがリセットされなかったため、次回の解体時に古いポインタへアクセスしてしまったことに起因しています。この脆弱性により、範囲外のデータが破損する可能性がありました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。cnicのcnic_delete_taskにおけるuse-after-freeバグを修正しました。元のコードでは、cnic_cm_stop_bnx2x_hw()内でcancel_delayed_work()が使用されており、遅延ワークアイテムである'delete_task'がすでに実行中の場合、その完了が保証されていませんでした。さらに、その遅延ワークアイテムは周期的であり、cnic_cm_stop_bnx2x_hw()内のflush_workqueue()は呼び出し前にキューに入れられたワークアイテムのみを待機します。flush_workqueue()呼び出し後にキューに追加されたワークアイテムは待機対象に含まれません。つまり、周期的なワークアイテムの実行が終了した後でも、workqueueに遅延ワークアイテムが存在する可能性があります。これにより、cnic_free_dev()によってcnic_devが解放された後でもdelete_taskがアクティブなままでcnic_delete_task()内でcnic_devを参照しようとしてuse-after-freeの状況が発生します。典型的な競合状態は以下の通りです。CPU0(クリーンアップ)ではcnic_netdev_event() - cnic_stop_hw() - cnic_cm_stop_bnx2x_hw() - cancel_delayed_work() - flush_workqueue() - cnic_free_dev(dev)が実行され、cnic_devが解放されます。一方、CPU1(遅延ワークコールバック)ではcnic_delete_task()がflush_workqueue()の後にqueue_delayed_work()を実行し、新しいdelete_taskインスタンスがdevを使用します。cancel_delayed_work()をcancel_delayed_work_sync()に置き換えることで、周期的な遅延ワークアイテムが適切にキャンセルされ、ワークアイテムの実行が完了するまで待機した後にcnic_devが解放されるようになりました。さらにcancel_delayed_work_sync()は__flush_work(work, true)を使用して現在実行中のワークアイテムの完了を同期的に待つため、flush_workqueue()は冗長となり削除されるべきです。このバグは静的解析により特定されました。再現および修正検証のために、QEMU上でcnic PCIデバイスをシミュレートし、cnic_delete_task()内にssleep()を挿入するなど意図的な遅延を加えてバグ発生の可能性を高めました。
Linuxカーネルにおいて、次の脆弱性が修正されました:virtio_umlのprobe内でのput_device後に発生するuse-after-freeの問題を修正しました。virtio_uml_probe()内でregister_virtio_device()が失敗した場合、デバイスが正常に登録されなかったにもかかわらず、コードはvu_dev-registeredを1に設定していました。これにより、use-after-freeやその他の問題が発生する可能性がありました。
Juniper Networks Junos OSおよびJuniper Networks Junos OS Evolvedのルーティングプロトコルデーモン(rpd)にはUse After Freeの脆弱性が存在し、攻撃者が特定の不正なAS PATHを含むBGPアップデートを送信すると、rpdがクラッシュしてサービス拒否(DoS)が引き起こされる可能性があります。不正なAS PATH属性を継続的に受信することで、持続的なDoS状態が発生します。すべてのJunos OSおよびJunos OS Evolvedプラットフォームでは、BGPアップデート内で特定の不正なAS PATHが受信され、traceoptionsが有効である場合にrpdプロセスがクラッシュし再起動します。この問題はBGP traceoptionsが有効なシステムにのみ影響し、すでにBGPセッションが確立されている必要があります。BGP traceoptionsが無効なシステムには影響しません。この問題の影響を受けるバージョンは以下の通りです。Junos OS: 21.2R3-S9より前のすべてのバージョン、21.4のすべてのバージョン、22.2の22.2R3-S6より前、22.4の22.4R3-S5より前、23.2の23.2R2-S3より前、23.4の23.4R2-S4より前、24.2の24.2R2より前。Junos OS Evolved: 22.4R3-S5-EVOより前のすべてのバージョン、23.2-EVOの23.2R2-S3-EVOより前、23.4-EVOの23.4R2-S4-EVOより前、24.2-EVOの24.2R2-EVOより前。これにより、サービス拒否が発生するリスクがあります。
Juniper NetworksのJunos OSおよびJunos OS Evolvedの802.1X認証デーモン(dot1xd)に、Use After Freeの脆弱性が特定されました。この脆弱性により、認証済みでネットワークに隣接した攻撃者がポートをフラップさせることでdot1xdプロセスをクラッシュさせ、サービス拒否(DoS)を引き起こすか、またはroot権限で実行されているプロセスのコンテキスト内で任意のコードを実行する可能性があります。問題はポートのバウンスが発生した際の認可変更(CoA)の処理に特有で、ポインタが解放された後に同じコードパス内で再参照される点に起因します。成功した攻撃は、この脆弱なコードパスを実行するために必要な2つのイベントのタイミングを特定できないため、攻撃者の直接制御外にあります。この問題は802.1X認証によるポートベースのネットワークアクセス制御(PNAC)が有効なシステムに影響を与えます。影響を受けるバージョンは以下の通りです。Junos OS: 23.2R2-S1から23.2R2-S5未満、23.4R2から23.4R2-S6未満、24.2から24.2R2-S3未満、24.4から24.4R2-S1未満、25.2から25.2R1-S2および25.2R2です。Junos OS Evolved: 23.2R2-S1から23.2R2-S5-EVO未満、23.4R2から23.4R2-S6-EVO未満、24.2から24.2R2-S3-EVO未満、24.4から24.4R2-S1-EVO未満、25.2から25.2R1-S2-EVOおよび25.2R2-EVOです。
Linuxカーネルのkernfsサブシステムにおいて、__kernfs_remove関数内のuse-after-freeの脆弱性が修正されました。この脆弱性は、Syzkallerが同時にkernfs_remove_by_name_ns()を呼び出すことで発生し、KASANによって検出されました。競合状態により、kernfs_drain()の実行中にルートノードが解放されて不正なメモリアクセスが発生していました。この問題に対処するため、削除されるツリーのルートに対して__kernfs_remove()を呼び出す前に追加の参照カウントを取得するように修正されました。
Linuxカーネルにおいて、次の脆弱性が修正されました。efi: ssdtに関して、ACPIテーブルが正常にロードされた場合はメモリを解放しないように修正されました。Amadeuszは、コミット3881ee0b1edc("efi: avoid efivars layer when loading SSDTs from variables")によって導入されたKASANのuse-after-freeエラーを報告しました。この問題は、新しいACPIテーブルを保持するメモリが、ACPIコアがテーブルのロード失敗を報告した場合のみならず、無条件に解放されていたことに起因しています。そこで、成功時にはkfree()を省略することでこの問題を修正しました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。cxl/acpiのcxl_parse_cfmws()関数におけるuse-after-freeの問題が修正されています。KASANおよびKFENCEによってCXLドライバー内でのuse-after-freeが検出されました。この問題はcxl_decoder_add()の失敗パスで発生します。KASANは以下のエラーを出力します。BUG: KASAN: slab-use-after-free in cxl_parse_cfmws (drivers/cxl/acpi.c:299)。この問題はcxl_parse_cfmws()関数内で、put_device()が呼ばれてcxldの解放が行われた後に、そのメモリへアクセスしてしまうことにより発生します。dev_err()内で解放されたメモリを指すのではなく、ローカル変数を使用するように変更しました。dev_err()はリソースの情報を出力しているため、固定コードの出力フォーマットを%pr形式の指定子を使うように変更しました。