CVE-2026-18746 in Zephyr情報

要約

〜によって VulDB • 2026年09月29日

subsys/net/lib/lwm2m/lwm2m_message_handling.cのparse_write_op()は、Block1オプションを含む着信CoAP WRITE/CREATEリクエストを処理します。転送の最初のブロックにおいて、関数はinit_block_ctx()を呼び出した後、戻り値を確認する前にblock_ctx->ctx.block_size = block_sizeとしてピアが選択したブロックサイズを即座に保存します。init_block_ctx()は、静的なblock1_contexts[]プールのエントリが空き状態またはタイムアウトしていない場合、呼び出し元のポインタをNULLに設定し-ENOMEMを返すため、その後の代入処理でNULLポインターのデリファレンスが発生します。

このプールにはCONFIG_LWM2M_NUM_BLOCK1_CONTEXT個のエントリ(デフォルトは3)が保持されており、エントリはその転送が完了するまで、失敗するか、または30秒経過するまでは再利用されません。したがって、ピアはクライアントのLwM2Mソケットに到達可能な場合、CoAP Moreビットを設定した状態で3つの異なるオブジェクトパス上で3回のブロックワイズ書き込みを開始し、それらを未完成のままにしておき、その後新しいパスでの4回目の書き込みの最初のブロックを送信することで、ガードされていないデリファレンスを誘発できます。到達可能性は、CONNECTED UDPソケットのソースアドレスフィルタによってのみ制限されます(CONFIG_LWM2M_DTLS_SUPPORTが有効でない限り)。デフォルトではDTLSサポートは無効であるため、NoSec環境においてオンパス攻撃者やアドレススプーフィングを行う攻撃者は認証情報を必要としません。同様のシーケンスはブートストラップサーバーまたは信頼度が低いサーバーからも到達可能であり、4つの並行ブロック転送を実行している正当なサーバーによっても偶発的に引き起こされる可能性があります。

この書き込み対象は0から7の値を持つ固定された低アドレスであるため、結果として使用可能なメモリ破壊プリミティブではなく致命的なメモリエラー(BusFaultまたは低領域の破損によるフォールト)が発生し、デバイスはクラッシュまたはリセットします。機密性と完全性には影響ありません。修正プログラムは代入処理をガードの下に移動させ、戻り値ではなくコンテキストポインタ自体を検証することで、コンテキストが有効であることが確認された場合にのみアクセスされるようにしています。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Zephyr

予約する

2026年08月03日

モデレーション

承諾済み

エントリ

VDB-411218

EPSS

0.00000

アクティビティ

低い

ソース

Interested in the pricing of exploits?

See the underground prices here!