脆弱性情報(JVN)
脆弱性情報(JVN)検索・一覧
JVN(IPA/JPCERT/CC 提供)の脆弱性情報 289,735 件を、製品・ベンダ・脆弱性タイプ(CWE)で 全文検索し、深刻度(CVSS)で絞り込めます。発表日の新しい順。各タイトルから詳細(CVSS内訳・関連脆弱性)へ。
深刻度 High 種別 境界外書き込み の検索結果:161–200 件目を表示(ページ 5)
深刻度は CVSS(共通脆弱性評価システム・0〜10 のスコア)に基づく区分:Critical 9.0以上/High 7.0〜8.9/Medium 4.0〜6.9/Low 0.1〜3.9。
Linuxカーネルにおいて、TH1520 AONファームウェアプロトコルドライバーの2つの問題が修正されました。1つ目は、不安全なポインタ演算によりバッファオーバーフローが発生する可能性があった問題を修正したことです。2つ目は、カスタムのエンディアン変換マクロを標準のカーネルのエンディアン変換マクロに置き換えることで、移植性と保守性が向上したことです。これらの修正により、GPUの電源投入シーケンスが正常に動作し、ドライバーのプローブが成功することが確認されました。
Linuxカーネルにおいて、以下の脆弱性が修正されました:rxrpcの非XDRキー事前解析におけるチケット長の検証漏れです。rxrpc_preparse()には、キーのペイロード解析のために2つの経路があります。XDR経路(大きなペイロード用)と非XDR経路(28バイト以下のペイロード用)です。XDR経路(rxrpc_preparse_xdr_rxkad())はAFSTOKEN_RK_TIX_MAXに対してチケット長を正しく検証しますが、非XDR経路では行われていませんでした。このため、権限のないユーザーが非常に大きなチケット長を提供できてしまう問題がありました。後にrxrpc_read()でキーが読み込まれる際、トークン全体のサイズ(toksize)の計算がAFSTOKEN_LENGTH_MAXを超える値となり、WARN_ON()が発生します。[ 2001.302904] WARNING: CPU: 2 PID: 2108 at net/rxrpc/key.c:778 rxrpc_read+0x109/0x5c0 [rxrpc] この問題は、rxrpc_preparse()の非XDR解析経路においてチケット長がAFSTOKEN_RK_TIX_MAXを超えないことを確認するチェックを追加することで修正されました。この検証はXDR解析ロジックと同等に行われています。
Linuxカーネルにおいて、以下の脆弱性が修正されました。crypto: ccpにおいて、PSPコマンドが失敗した場合にCPUのIDをユーザースペースにコピーしようとしないようにしました。CPUのIDを取得する際、ファームウェアコマンドが失敗した場合はIDデータをユーザースペースにコピーしない仕様に変更しました。失敗は無効な長さ、つまりユーザースペースのバッファと長さが小さすぎる場合に発生します。この場合、ファームウェアが要求するバイト数をコピーするとカーネルが割り当てたバッファがオーバーフローし、ユーザースペースにデータが漏洩する可能性があります。BUG: KASAN: slab-out-of-boundsはinstrument_copy_to_user ../include/linux/instrumented.h:129 [inline]、_inline_copy_to_user ../include/linux/uaccess.h:205 [inline]、および_copy_to_user+0x66/0xa0 ../lib/usercopy.c:26で発生しました。64バイトの読み取りがアドレスffff8881867f5960でタスクsyz.0.906/24388によって実行されました。CPU: 130 UID: 0 PID: 24388 コマンド: syz.0.906 汚染状態: G U O 7.0.0-smp-DEV #28 PREEMPTLAZY 汚染詳細は[U]=ユーザー、[O]=OOT_MODULEです。ハードウェア名はGoogle, Inc. Arcadia_IT_80/Arcadia_IT_80、BIOSは12.62.0-0で2025年11月19日です。コールトレースはdump_stack_lvl、print_address_description、print_report、kasan_report、check_region_inline、kasan_check_range、instrument_copy_to_user、_inline_copy_to_user、_copy_to_user、copy_to_user、sev_ioctl_do_get_id2、sev_ioctl、vfs_ioctl、__do_sys_ioctl、__se_sys_ioctl、do_syscall_x64、do_syscall_64、entry_SYSCALL_64_after_hwframeです。ドライバがコマンド成功を通知しても、ファームウェアのエラーコードが異なる場合は警告を発してください。これは__sev_do_cmd_locked()がファームウェアエラー時に-EIOを返すことが期待されているためです。
Linuxカーネルにおいて以下の脆弱性が修正されました。crypto: ccp: PSPコマンドが失敗した場合にPDH証明書をユーザースペースにコピーしません。PDH証明書の取得時にファームウェアコマンドが失敗した場合、無効な長さが原因でバッファオーバーフローやユーザースペースへの情報漏洩が発生する可能性がありました。この問題に対して警告を出すことで、ドライバーがコマンド成功を示しつつもファームウェアのエラーを正しく処理できるようにしています。
Linuxカーネルにおいて、crypto: ccp: PSPコマンドが失敗した場合にCSRをユーザースペースにコピーしないよう修正されました。PEK CSRを取得する際、ファームウェアコマンドが失敗した場合はデータのコピーを行わず、これによりバッファオーバーフローやデータ漏洩のリスクを軽減します。この修正によって、ユーザースペースのバッファ長が小さすぎる場合にカーネルが割り当てたバッファをオーバーフローし、不正なメモリアクセスが発生する問題が解決されました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。ksmbdのipc_validate_msg()関数内でレスポンスサイズの検証を行います。ipc_validate_msg()は、攻撃者が制御可能なデーモンレスポンスのフィールドを固定構造体サイズに加算または乗算し、各レスポンスタイプの予想メッセージサイズを符号なし整数の算術で計算します。次の3つの場合にオーバーフローが発生する可能性があります。KSMBD_EVENT_RPC_REQUESTでは、msg_sz = sizeof(struct ksmbd_rpc_command) + resp-payload_szとなります。KSMBD_EVENT_SHARE_CONFIG_REQUESTでは、msg_sz = sizeof(struct ksmbd_share_config_response) + resp-payload_szとなります。KSMBD_EVENT_LOGIN_REQUEST_EXTでは、msg_sz = sizeof(struct ksmbd_login_response_ext) + resp-ngroups * sizeof(gid_t)となります。resp-payload_szは__u32型、resp-ngroupsは__s32型です。各加算は符号なし整数でラップする可能性があり、sizeof(gid_t)との乗算は符号付きとsize_tの混用であるため、負のngroupsは乗算前にSIZE_MAXに変換されます。ラップしたmsg_szの値がたまたまentry-msg_szと等しい場合、次の行でのサイズチェックを回避し、下流の消費者(smb2pdu.c:6742のrpc_resp-payload_szを使うmemcpyやksmbd_alloc_userのkmemdupでresp_ext-ngroupsを使用)が未検証の長さを信用してしまいます。RPC_REQUESTおよびSHARE_CONFIG_REQUESTのパスにはcheck_add_overflow()を使用し、整数オーバーフローを検出しつつ機能的なペイロードサイズを制限しません。ユーザー空間のksmbd-toolsはNetShareEnumAllのような呼び出しでNDRレスポンスを4096バイト単位で増加させるため、レスポンス側でのハードな転送上限は不適切です。LOGIN_REQUEST_EXTについては、resp-ngroupsが符号付きの[0, NGROUPS_MAX]範囲外であれば受付けず、ipc_validate_msg()でエラーを報告してIPC境界で検出できるようにしています。この制限により乗算・加算はUINT_MAXを大幅に下回ります。今後は冗長となるngroupsチェックとksmbd_alloc_user()内のpr_errを削除します。これはリクエスト側を強化したaab98e2dbd64("ksmbd: 32ビットシステムでの整数オーバーフロー修正")のレスポンス側に対応した修正です。
Linuxカーネルにおいて、以下の脆弱性が修正されました。ksmbdのsmb_check_perm_dacl()関数でACEの最小サイズを適切に要求するように改善されました。smb_check_perm_dacl()内の両方のACEウォークループは、残りのバッファが小さすぎる場合のみ防御しており、構造体より小さいと宣言されたace-sizeに対しては防御していませんでした。最初のチェックは4バイトのACEヘッダーが範囲内であることのみを要求しており、offset 4のaccess_req(4バイト)が読み取り可能であることは要求していませんでした。攻撃者が所有するファイルに細工されたDACLを設定すると、ace-sizeが4かつaces_sizeが4と宣言し、両方のチェックを通過した後、上位ループでgranted |= le32_to_cpu(ace-access_req);を、下位ループでcompare_sids(&sid, &ace-sid);を呼び出しますが、これはoffset 4のaccess_req(最大4バイトのOOB)およびoffset 8のace-sid(最大CIFS_SID_BASE_SIZE + SID_MAX_SUB_AUTHORITIES * 4バイトのOOB)を読み取る結果となります。これらの両ループを厳密化し、ace_sizeがoffsetof(struct smb_ace, sid) + CIFS_SID_BASE_SIZE以上であることを要求するようにしました。これは最小の有効なオンワイヤACEレイアウト(4バイトヘッダー+4バイトaccess_req+8バイトのsidベースでサブ認証なし)です。また、compare_sids()はsub_auth[]エントリを参照する前にsid.num_subauthがSID_MAX_SUB_AUTHORITIESを超えるACEを却下するようにしました。parse_sec_desc()は既に同等のチェックを実施していました(行441から448)が、smb_check_perm_dacl()は時間経過とともに検証が弱くなっていました。到達条件はファイルのACL設定権限を持つ認証済みSMBクライアントです。そのファイルに対するCREATE操作時にカーネルが保存されたDACLをsmb_check_perm_dacl()経由で走査し、OOB読み取りを引き起こします。これは事前認証ではなく、OOB読み取りの影響は攻撃者に反映されませんが、KASANレポートやカーネル状態の破損が発生する可能性があります。
Linuxカーネルにおいて、以下の脆弱性が修正されました。fs/ntfs3のジャーナルリプレイにおけるファイルレコードチェックで、check_file_record()関数はrec-totalをレコードサイズと比較して検証しますが、rec-usedは検証していませんでした。do_action()のジャーナルリプレイハンドラーはディスクからrec-usedを読み取り、memmoveの長さを計算する際にこの値を使用します。具体的には、DeleteAttributeではmemmove(attr, ..., used - asize - roff)、CreateAttributeではmemmove(..., attr, used - roff)、change_attr_sizeではmemmove(..., used - PtrOffset(rec, next))という形です。もしrec-usedが検証済み属性のオフセットより小さいか、レコードサイズより大きい場合、これらの引き算がアンダーフローして4KBバッファに大量のメモリコピーが発生する恐れがあります。この状況は一般的に非常に危険とされています。この問題は破損したファイルシステムが前提となるため、カーネルの脅威モデルには直接関係しませんが、ジャーナルリプレイ時の堅牢性を保つためには、このような明らかに範囲外の値を検証することが特に重要です。修正はrec-usedの値を適切に制限することで対処しました。本修正は、同じswitch文内で異なる値を検査したコミットb2bc7c44ed17("fs/ntfs3: DeleteIndexEntryRootのスラブアウトオブバウンズ読み取りの修正")と類似しています。
Nothings stbのバージョン1.22までにセキュリティ上の脆弱性が発見されました。この脆弱性はファイルstb_vorbis.cの関数start_decoderに影響を与えます。この脆弱性の悪用により、境界外書き込みが発生します。攻撃はリモートから実行される可能性があります。このエクスプロイトは公開されており、攻撃に使用される恐れがあります。ベンダーには早期にこの情報を開示しましたが、何らかの回答は得られていません。
Thunderbird ESR 140.10.0およびThunderbird 150.0.0に存在するメモリ安全性のバグです。これらのバグの一部はメモリ破損の証拠を示しており、十分な努力を払えば任意のコードを実行するために悪用できると推測されます。この脆弱性はFirefox 150.0.1、Firefox ESR 140.10.1、Thunderbird 150.0.1、およびThunderbird 140.10.1で修正されました。
Wireshark 4.6.0から4.6.4および4.4.0から4.4.14において、SBCコーデックのクラッシュによりサービス拒否が発生し、さらにコードが実行される可能性があります。
Wireshark 4.6.0から4.6.4および4.4.0から4.4.14におけるRDPプロトコルディセクタのクラッシュにより、サービス拒否やコード実行が発生する可能性があります。
FreeRTOS-Plus-TCPのIPv6ルーターアドバタイズメント処理におけるプレフィックス長フィールドの検証が不十分であるため、V4.2.6およびV4.4.1より前のバージョンにおいて、隣接するネットワークの攻撃者が最大有効長を超えるプレフィックス長の値を持つ細工されたルーターアドバタイズメントを送信すると、メモリ破損が引き起こされ、ヒープバッファオーバーフローが発生する可能性があります。IPv4 RAのみを処理するユーザーには影響がありません。この問題を緩和するために、利用可能になり次第修正済みバージョンにアップグレードすることを推奨します。
GNU Cライブラリバージョン2.2以降の非推奨関数であるns_printrrf、ns_printrrおよびfp_nqueryは、呼び出し元が指定したバッファ長を強制しません。このため、TSIGレコードを印刷する際に境界外書き込みが発生する可能性があります。
wolfSSLのPKCS7 SignedDataエンコーディング機能にスタックバッファオーバーフローの脆弱性があります。wc_PKCS7_BuildSignedAttributes()では、カスタム署名属性を追加する際に、固定サイズのsignedAttribs[7]配列の残りの空き容量ではなく、不正な容量値(esd-signedAttribsCount)がEncodeAttributes()に渡されます。アプリケーションがpkcs7-signedAttribsSzを、既に追加されているデフォルト属性の数を引いたMAX_SIGNED_ATTRIBS_SZ(デフォルト7)を超える値に設定すると、EncodeAttributes()は配列の境界を越えて書き込みを行い、スタックメモリを破損します。WOLFSSL_SMALL_STACKビルドでは、これがヒープの破損につながります。悪用するには、wc_PKCS7_EncodeSignedData()や関連する署名関数を呼び出す際に、信頼できない入力がsignedAttribs配列のサイズを制御できるアプリケーションが必要です。
wolfSSLのwolfSSL_d2i_SSL_SESSION()関数にはヒープバッファオーバーフローの脆弱性があります。SESSION_CERTSが有効な状態でセッションデータを逆シリアル化する際に、証明書およびセッションIDの長さが境界検証なしで信頼できない入力から読み取られます。そのため、攻撃者は固定サイズのバッファをオーバーフローさせてヒープメモリを破損させる可能性があります。この脆弱性を悪用するには、外部ソースから悪意のあるセッションが読み込まれる必要があります。内部セッションには影響がありません。
Google Chromeのバージョン147.0.7727.138以前のAngleにおける境界外読み取りおよび書き込みの脆弱性により、リモートの攻撃者が細工されたHTMLページを介してサンドボックスの制限を回避する可能性がありました。
MAGIX Music Editor 3.1には、FreeDB Proxy Optionsダイアログにバッファオーバーフローの脆弱性が存在します。この脆弱性により、ローカル攻撃者が構造化例外処理を悪用して任意のコードを実行可能です。攻撃者は悪意のあるペイロードを作成し、CDメニューのFreeDB Proxy OptionsのServerフィールドに貼り付けることで、設定が受け入れられた際にコード実行を引き起こせます。
Iperius Backup 5.8.1には、構造化例外処理(SEH)メカニズムにローカルバッファオーバーフローの脆弱性があります。悪意のあるファイルパスを提供することで、ローカル攻撃者が任意のコードを実行できる可能性があります。攻撃者は、外部ファイルの場所フィールドに細工されたペイロードを含むバックアップジョブを作成し、バックアップジョブの実行時にバッファオーバーフローを引き起こして、アプリケーション権限でコードを実行できるようにします。
Linuxカーネルにおいて、以下の脆弱性が修正されました。rxrpcの関数rxgk_do_verify_authenticator()に存在していたバッファオーバーリードの問題が修正されました。rxgk_do_verify_authenticator()は、nonceを確認する前にバッファサイズをチェックするように改善されました。
OP-TEEは、ArmのCortex-Aコア上でTrustZone技術を使用し、非セキュアなLinuxカーネルの補助として設計されたTrusted Execution Environment(TEE)です。バージョン3.13.0から4.10.0までの間で、`ta/pkcs11/src/object.c`の`entry_get_attribute_value()`における検査不足により、PKCS#11 TAヒープから境界外読み取りやクラッシュが発生する可能性があります。OOB読み取りと連鎖すると、PKCS#11 TA関数`PKCS11_CMD_GET_ATTRIBUTE_VALUE`または`entry_get_attribute_value()`が、不正なテンプレートパラメータによってテンプレートバッファの末尾から最大7バイト超過して読み取りを行い、PKCS#11オブジェクトの属性値の内容でテンプレートバッファの末尾を越えて書き込みを行うように騙される場合があります。コミットe031c4e562023fd9f199e39fd2e85797e4cbdca9、16926d5a46934c46e6656246b4fc18385a246900、および149e8d7ecc4ef8bb00ab4a37fd2ccede6d79e1caにはパッチが含まれており、バージョン4.11.0に含まれる予定です。
Linuxカーネルにおいて、次の脆弱性が修正されました:net: macbで統計情報に現在のキュー番号を使用する問題があります。統計情報用に確保されたメモリと実際に書き込まれるメモリ量に不一致が発生する可能性があります。gem_get_sset_count()はアクティブなキュー数に基づいて正しく統計数を計算しますが、gem_get_ethtool_stats()は最大キュー数を使って無差別にデータをコピーします。その結果、アクティブなキュー数がMACB_MAX_QUEUES未満の場合、KASANが検出したとおりOOB(境界外)書き込みが発生します。具体的なエラーはKASANのvmalloc-out-of-boundsであり、ethtoolタスクによる760バイトの書き込みが原因です。問題のアドレスは1ページのvmalloc領域に属しており、dev_ethtool関数で割り当てられています。修正はコピーされるサイズをアクティブなキュー数のみに基づくようにして問題を解決しています。
Linuxカーネルにおいて、iavfドライバーのiavf_get_ethtool_stats()関数で境界外書き込みの脆弱性が修正されました。iavfは誤ってreal_num_tx_queuesを使用していましたが、これは実行時に変化する可能性があり、安全なnum_tx_queuesを用いるべきでした。これにより、ethtoolの一部操作を同時に行った場合に境界外書き込みが発生し、メモリの破損やシステムの不安定化を引き起こす可能性がありました。関連する関数で不変なnum_tx_queuesを使用することで、この問題を解決しています。
LanSpy 2.0.1.159には、スキャンセクションにローカルバッファオーバーフローの脆弱性が存在し、これを悪用することでローカルの攻撃者が構造化例外処理(SEH)機構を利用して任意のコードを実行できます。攻撃者はegghunter技術を用いて悪意のあるペイロードを作成し、シェルコードを特定して実行し、SEHチェーンの操作と制御されたジャンプによってコード実行を引き起こすことが可能です。
LanSpy 2.0.1.159にはローカルのバッファオーバーフロー脆弱性があり、スキャンフィールドに過剰な入力を供給することで、攻撃者が命令ポインタを上書きできます。この脆弱性を利用すると、攻撃者は688バイトのパディングの後に4バイトの制御されたデータを含むペイロードを作成して、アプリケーションをクラッシュさせるか、潜在的にコード実行を達成できます。
Labcenter Electronics ProteusのPDSPRJファイル解析における境界外書き込みにより、リモートコード実行が可能となる脆弱性です。この脆弱性を利用すると、リモートの攻撃者はLabcenter Electronics Proteusの影響を受けるインストール環境上で任意のコードを実行できます。攻撃を成立させるにはユーザーの操作が必要であり、ターゲットが悪意のあるページを訪問するか、悪意のあるファイルを開く必要があります。問題の脆弱性はPDSPRJファイルの解析処理に存在し、ユーザー提供データの適切な検証が行われていないため、割り当てられたバッファの末尾を越える書き込みが発生します。攻撃者はこの脆弱性を利用して、現在のプロセスのコンテキストでコードを実行できます。この問題はZDI-CAN-25718として報告されています。
Labcenter Electronics ProteusのPDSPRJファイル解析における境界外書き込みによるリモートコード実行の脆弱性です。この脆弱性により、遠隔の攻撃者がLabcenter Electronics Proteusの影響を受けるインストール環境で任意のコードを実行できます。この脆弱性を悪用するには、対象ユーザーが悪意のあるページを訪問するか、悪意のあるファイルを開くなどの操作を行う必要があります。具体的な欠陥はPDSPRJファイルの処理に存在し、ユーザーから提供されたデータの適切な検証が行われないため、割り当てられたバッファの末尾を超える書き込みが発生します。攻撃者はこの脆弱性を利用して、現在のプロセスの権限でコードを実行できます。以前はZDI-CAN-25719として識別されていました。
Labcenter Electronics ProteusのPDSPRJファイル解析における境界外書き込みの脆弱性により、リモートコード実行が可能となる脆弱性です。この脆弱性により、遠隔の攻撃者がLabcenter Electronics Proteusの影響を受けるインストール環境上で任意のコードを実行できます。この脆弱性を悪用するには、ターゲットが悪意のあるページを訪問するか、悪意のあるファイルを開くなどのユーザー操作を行う必要があります。具体的な欠陥はPDSPRJファイルの処理に存在し、ユーザーから提供されたデータが適切に検証されていないため、割り当てられたバッファの末尾を越えた書き込みが発生します。攻撃者はこの脆弱性を悪用して、現在のプロセスのコンテキストでコードを実行できます。元はZDI-CAN-25720の脆弱性です。
Linuxカーネルにおいて、以下の脆弱性が修正されました:bpfにおけるINT_MINに対するインタプリタのsdiv/smodの未定義動作を修正しました。BPFインタプリタの符号付き32ビット除算および剰余の処理では、s32オペランドに対してカーネルのabs()マクロを使用しています。abs()マクロのドキュメント(include/linux/math.h)には、入力が型の最小値の場合、結果が未定義であると明記されています。DSTがS32_MIN(0x80000000)を含む場合、abs((s32)DST)は未定義動作を引き起こし、arm64/x86上でS32_MINをそのまま返します。この値はその後符号拡張されてu64の0xFFFFFFFF80000000となり、do_div()で誤った結果を算出します。検証器の抽象解釈(scalar32_min_max_sdiv)は範囲追跡のために数学的に正しい結果を計算しており、これが検証器とインタプリタ間の不一致を生み、境界外のマップ値アクセスが悪用される可能性があります。abs_s32()を導入し、符号付きオーバーフローを完全に回避するために、S32_MINを符号なしのu32にキャストしてから符号反転を行う形で正しく処理します。インタプリタのsdiv32/smod32ハンドラ内のabs((s32)...)の呼び出し箇所8か所をすべて置き換えています。s32のみが影響を受け、s64の除算/剰余ハンドラではabs()を使用していません。
Firefox ESR 115.34、Firefox ESR 140.9、Thunderbird ESR 140.9、Firefox 149、およびThunderbird 149に存在するメモリ安全性のバグです。これらのバグのいくつかはメモリ破損の証拠を示しており、十分な努力をすれば任意のコードを実行する目的で悪用される可能性があります。この脆弱性はFirefox 150、Firefox ESR 115.35、Firefox ESR 140.10、Thunderbird 150、およびThunderbird 140.10で修正されました。
Firefox ESR 140.9、Thunderbird ESR 140.9、Firefox 149、および Thunderbird 149にはメモリ安全性に関するバグが存在します。これらのバグの一部はメモリ破損の証拠を示しており、十分な努力があれば任意のコードを実行する目的で悪用される可能性があると推測されます。この脆弱性は Firefox 150、Firefox ESR 140.10、Thunderbird 150、および Thunderbird 140.10で修正されています。
River Past Video Cleaner 7.6.3には、構造化例外ハンドラのバッファオーバーフローの脆弱性があり、ローカルの攻撃者がLame_enc.dllフィールドに悪意のある文字列を提供することで任意のコードを実行可能です。攻撃者は280バイトのパディング、構造化例外ハンドラの上書き、およびシェルコードを含むペイロードを作成し、アプリケーションが入力を処理する際にコード実行を引き起こします。
Linuxカーネルにおいて、以下の脆弱性が修正されました。hwmon: (macsmc) Apple Silicon SMC hwmonドライバーの回帰バグを修正しました。直近で追加されたmacsmc-hwmonドライバーには、センサー登録ロジックおよび浮動小数点変換ルーチンに複数の重大なバグが含まれていました。具体的には、電圧センサーの登録ループで誤ったプレフィックス("volt-"ではなく"voltage-")が使われており、さらにセンサーを温度センサー配列(hwmon-temp.sensors)に誤って割り当てていたため、温度と電圧のセンサーが共に存在する場合にメモリの境界外アクセスやデータ破損が発生する可能性がありました。また、macsmc_hwmon_write_f32()の浮動小数点変換処理では、2^24以上の値に対する指数部のロジックに問題があり、かつ仮数部のマスクが不足していたため、SMCに誤った値が書き込まれる恐れがありました。これらの問題を修正することで、正しいセンサー登録と信頼性のある手動ファン制御を実現しています。さらに、FIELD_PREPで報告されていたオーバーフローはmacsmc_hwmon_write_f32()を__always_inlineとして宣言しコンパイルテストを行うことで修正を確認しました。
Linuxカーネルにおいて、xskのフラグメントノードの削除方法を修正し、バッファリークの問題を防止しました。コミットb692bf9a7543でlist_nodeフィールドが複数のリストで再利用されるようになりましたが、list_del()の使用によりノードが正しく再初期化されず、list_empty()が誤った結果を返してバッファの解放リストへの追加がスキップされる問題が発生していました。この問題は、すべてのフラグメント処理パスでlist_del()の代わりにlist_del_init()を使用することで解決され、ノードが削除後に適切に再初期化されるようになりました。
Linuxカーネルにおいて、以下の脆弱性が修正されました。xdpでは計算されたtailroomが負の値の場合に警告を出します。多くのイーサネットドライバーはxdpのRxキューのfragサイズをDMA書き込みサイズと同じ値として報告しています。しかし、このフィールドの唯一のユーザーであるbpf_xdp_frags_increase_tail()はtruesizeを期待しています。この不一致により、特定の状況下で不特定のメモリ破損問題が発生します。例えば、ixgbevfでは最大DMA書き込みサイズが3KBであり、xskxceiverのXDP_ADJUST_TAIL_GROW_MULTI_BUFFを実行すると、6KBパケットが2つのバッファのDMA書き込み可能領域全てを使い切ります。本来であればrxq-frag_sizeは4KBに設定されるべきですが、3KBの値のままだと非ゼロのページオフセットが存在するためtailroomが負になります。この場合は-EINVALを返すべきですが、tailroomが符号なし整数として保存されているためUINT_MAX付近の大きな値が報告され、要求オフセットが大きすぎる場合でもtailが成長してしまいます(上記テストでは約2KB)。これが後にさまざまな不特定のコールトレースの原因となります。ログの例としてxskxceiverのセグフォルトや一般保護例外が記録されており、CPUやメモリ状態の詳細も含まれています。
Linuxカーネルにおいて、次の脆弱性が修正されました:bpfのdevmapにおけるスタック境界外書き込みの問題です。get_upper_ifindexes()関数はすべての上位デバイスを反復処理し、そのインデックスを配列に書き込みますが、境界チェックを行っていませんでした。また、呼び出し元は上位デバイスの最大数をMAX_NEST_DEVと仮定し、excluded_devices[1+MAX_NEST_DEV]をスタック上に割り当てていましたが、この仮定は正しくありません。上位デバイスの数はMAX_NEST_DEVを超える場合があり(例:多数のmacvlan)、これによりスタックの境界外書き込みが発生していました。この問題を回避するために、get_upper_ifindexes()にmaxパラメータを追加しました。上位デバイスが多すぎる場合は-EOVERFLOWを返し、リダイレクトを中止します。再現方法としては、XDPプログラムがBPF_F_BROADCAST | BPF_F_EXCLUDE_INGRESSオプションでアタッチされたデバイス上にMAX_NEST_DEV(8)を超えるmacvlanを作成し、そのデバイスにパケットを送信すると、XDPのリダイレクト経路がトリガーされることを確認しました。
LinuxカーネルのPCIエンドポイントドライバにおいて、MSI-X割り込みの書き込みがアウトバウンドATUエントリのマッピング解除前にフラッシュされない問題がありました。そのため、ホストメモリが破損したり、IOMMUエラーが発生したりする可能性がありました。この脆弱性は、ATUエントリのマッピングを解除する前にreadl()で書き込みをフラッシュすることで修正されました。
Linuxカーネルにおいて、以下の脆弱性が修正されました:net/schedのact_ifeにおけるmetalistの更新動作の修正です。ifeアクションの置換時にmetalistを変更する際、従来のコードはmetalist上の古いデータを置き換えるのではなく、新しいメタデータを追加していました。この不適切な動作が原因で、metalistに無限にメタデータが追加され、エンコード処理実行時に境界外エラーが発生する可能性がありました。具体的には、ife_tlv_meta_encode関数(net/ife/ife.c:168)でKASANのスラブ境界外書き込みバグが発生していました。この問題を解決するために、ifeのRCUデータ構造にmetalistを追加し、置換動作を修正しました。
Linuxカーネルにおいて、tracing/dmaのdma_map_sgトレースポイント配列のサイズ制限によりバッファオーバーフローを防止する修正が行われました。大量のスキャッターゲザーリストがperfバッファのオーバーフローを引き起こす問題に対処しています。具体的には、virtio-gpuなどのデバイスで大きなDRMバッファが作成され、1000を超えるエントリ数がある場合に、物理アドレス配列やdmaアドレス配列、長さ配列の合計サイズが約2万バイトとなり、PERF_MAX_TRACE_SIZEの8192バイトを超えて警告が発生していました。これを防ぐためにmin関数を用いて128エントリに制限し、必要な分だけメモリを確保することで、小規模操作での無駄な割当てを避け、大規模操作でのオーバーフローを防止しています。また、トレースポイントはエントリ数とトランケートフラグを記録し、データが制限されたかどうかをユーザーが確認できるようにしています。v2では動的配列サイズ決定にmin(nents, DMA_TRACE_MAX_ENTRIES)を用い、フィードバックを反映して改善しました。レビュアーはSean Anderson氏です。
Linuxカーネルでは、以下の脆弱性が修正されました。dpaa2-switchのIRQハンドラで不正なif_idを受信した後に発生する割り込み嵐を修正しました。コミット31a7a0bbeb00("dpaa2-switch:IRQハンドラ内のif_idに対する範囲チェックを追加")は、範囲外アクセスを防止するためにif_idの範囲チェックを導入しました。範囲外のif_idが検出された場合、割り込みステータスがクリアされなかったため、割り込み嵐が発生する可能性がありました。問題を回避するために、範囲外のif_idを検出した後に割り込みステータスをクリアするようにしています。この問題はGoogleの実験的なAIコードレビュエージェントによって発見されました。
出典:JVN(Japan Vulnerability Notes・独立行政法人情報処理推進機構(IPA)/JPCERT コーディネーションセンター/jvn.jp)を加工して作成。 全文検索は当サイト収録分(全289,735件)を対象とし、発表日の新しい順に表示しています。 本情報の最新性・正確性・完全性は保証されません。詳細は各 JVN 詳細ページをご確認ください。 なお本情報は製品・ソフトウェアの脆弱性に関するものであり、特定の法人・製品ベンダの評価や信用性を示すものではありません。