JVNDB-2026-031091 | |
Zephyr ProjectのZephyrにおける複数の脆弱性 | |
| 概要 | |
LoRaWANのTS004 Fragmented Data Block Transportハンドラーfrag_transport_package_callback()(subsys/lorawan/services/frag_transport.c内)は、各アクセス前に十分なペイロードバイトが残っているかを検証せずにダウンリンクのコマンドバイトを解析します。ループの唯一の境界条件はrx_pos < lenであり、1バイトのコマンドIDを消費した後、ハンドラーはrx_buf + rx_posを10バイト構造体frag_transport_setup_reqにキャストし、DATA_FRAGMENTコマンドの場合は&rx_buf[rx_pos]をフラグメントデコーダに渡しますが、デコーダは正確にctx.frag_sizeバイトを読み取ります──どちらの場合も残り長さのチェックはありません。フラグメントサイズは先行するFRAG_SESSION_SETUPコマンドで攻撃者が選択可能であり(ctx.frag_size = req->frag_size、CONFIG_LORAWAN_FRAG_TRANSPORT_MAX_FRAG_SIZEで上限設定、デフォルトは232です)、rx_bufはloramac-nodeのMAC層にある255バイトの静的MacCtx.RxPayloadバッファの別名として用いられ、lenは実際の復号済みペイロード長を示します。攻撃者は、不一致インデックスのDATA_FRAGMENTフィラーコマンド(それぞれrx_posを3バイト進めるが応答は生成しない)でダウンリンクをパディングし、ペイロードの終わり近くに一致するインデックスのフラグメントを一つ付加することで、デコーダにRxPayloadの末尾から約frag_sizeバイト分までの越境読み取りを強制し、隣接する静的メモリをデコーダバッファやFUOTAフラッシュイメージにコピーさせることが可能です。ハンドラーはLoRaWANフレームのMIC検証およびFRMPayload復号に合格したダウンリンクでのみ動作するため、この欠陥はデバイスのセッションキーを保持する者(FUOTAサーバーまたはそれらのキーを侵害した攻撃者)のみが悪用可能です。越境読み取りされたバイトは送信元に返されず、唯一発信されるアップリンクはフラグメント数を伝えるステータス応答であるため、直接の情報漏洩チャネルは存在しません。典型的なフラットメモリのLoRaWAN MCU上では越境読み取りはマップ済みメモリ内に留まり、クラッシュが発生しにくい状態です。したがって影響は、限られた機密性の低下を伴う境界越え読み取りの範囲内にとどまり、書き込みや制御フロー操作は発生しません。修正では、各アクセス前に残り長さのガードを追加しています。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 3.1 (注意) [その他]
| |
| 影響を受けるシステム | |
|
| |
Zephyr Project | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/08/26 |
| 登録日 | 2026/09/01 |
| 最終更新日 | 2026/09/01 |



