CVE-2026-10672 in zephyr
要約
〜によって VulDB • 2026年07月14日
subsys/net/lib/lwm2m/lwm2m_pull_context.c は、firmware-update Package URI を固定静的バッファ(context.uri、サイズは CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN、デフォルト128)に memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN) でコピーしており、長さの検証なしで正確に宛先のサイズ分をコピーしています。Firmware-Update オブジェクトは、サーバーが提供した Package URI(/5/0/1)を 255 バイトのバッファ内に格納するため、LwM2M マネジメントサーバー(または強力な DTLS を欠くセッション上のパス上攻撃者)は 128〜254 文字の URI を書き込むことができます。その後、最初の 128 バイトのみが context.uri にコピーされますが、NUL終端されません。このバッファは後続的に http_parser_parse_url(context.uri, strlen(context.uri), ...) や、strlen ベースの CoAP URI-path/PROXY-URI オプション追加処理、lwm2m_parse_peerinfo() によって C文字列として消費されるため、隣接する静的メモリに対する境界外読み取り(out-of-bounds read)が発生します。過剰に読み込まれたバイトは送信側 CoAP リクエストに付加され(サーバー/プロキシへのデバイスメモリの情報漏洩)、デバイスのクラッシュ(サービス拒否:Denial of Service)を引き起こす可能性があります。この脆弱なコピー処理は、pull-context のリファクタリング(v3.0.0 で初リリース)によって導入され、v4.4.0 まで存在します。デフォルトで有効になっている CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT パスが影響を受けます。修正では strlen(uri) >= sizeof(context.uri) をチェックし -ENOMEM を返す処理が追加され、strcpy() に切り替えることで、境界付きかつ NUL終端されたバッファを保証します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.