CVE-2026-18747 in Zephyr情報

要約

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

MCUmgrのSMP-over-consoleトランスポートは、base64フレームをデコードし、そこから16ビットのパケット長を読み取り、CRCを検証した後に、mcumgr_serial_process_frag() (subsys/mgmt/mcumgr/transport/src/serial_util.c) 内で rx_ctxt->nb->len -= 2U; という条件なしの処理により末尾のCRCを除去します。mcumgr_serial_extract_len() は0や1を含む任意の宣言された長さを許可しており、長さ0のパケットは crc16_itu_t() がゼロバイトに対してゼロシードを返すため、チェックサムテストを自動的に通過します。net_buf::len が uint16_t であるため、減算アンダーフローが発生し、データ領域が CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE バイト(デフォルト384)しかないにもかかわらず、SMPには約65KBのペイロードがあるかのように扱われます。

トリガーは管理コンソールへの認証不要な7バイトの行です — 0x06 0x09 のパケットマーカーに base64グループ AAA= と改行が続くもの — は、このヘルパーを基盤とする任意のトランスポート(CONFIG_MCUMGR_TRANSPORT_UART (smp_uart.c) または CONFIG_MCUMGR_TRANSPORT_SHELL (smp_shell.c)、両方とも MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE を選択)に送信されます。アンダーフローを引き起こすために、事前のセッション状態、フラグメンテーション、または資格情報は必要ありません。不正なフレームは、コマンドハンドラやコマンドレベルのアクセス制御が実行される前に誤った処理を受けます。攻撃者はそのコンソールへの書き込み権限のみを必要とします。多くのボードでは、これは裸のUARTヘッダではなくUSB CDC-ACMポートです。

膨張された長さにより、subsys/mgmt/mcumgr/smp/src/smp.c の smp_process_request_packet() は境界制御を失います:cbor_nb_reader_init() はCBORデコーダーに384バイトのバッファに対して約65KBのウィンドウを与え、各リクエストヘッダの nh_len は膨張された長さとのみチェックされます。7バイトのフレーム単体では、再利用されるプールバッファが保持している古いデータを再解析し(通常は以前受信したリクエストのリプレイに続くパースエラー)、バッファ外には出ません。しかしトランスポートが認証不要であるため、攻撃者はトリガー前に送信されたフレームも制御でき、バッファ内容を準備して nh_len がバッファより大きいリクエストを成功させることができます。__ASSERT_NO_MSG によってのみ保護されている net_buf_pull() はパースカーソルを境界外に移動させ、ループは隣接するメモリからさらにヘッダとCBORを読み取ります。その結果、MCUmgrスレッドのフォールト(サービス拒否)を引き起こす可能性のあるバッファ外読み取りが発生します。また、デフォルトで有効化されている os echo ハンドラ (CONFIG_MCUMGR_GRP_OS_ECHO) がこのウィンドウ内で文字列をデコードし応答にコピーするため、メモリ開示も可能です。認証不要のトランスポートが既に許可しているものを超えて、整合性の向上はありません。

修正は mcumgr_serial_extract_len() で2バイト以下の宣言されたパケット長を拒否するものであり、これによりCRC除去による減算アンダーフローを防ぎます。同じパターンはテスト専用のループバックトランスポート subsys/mgmt/mcumgr/transport/src/smp_dummy.c (CONFIG_MCUMGR_TRANSPORT_DUMMY) に残っていますが、外部入力パスがないため実用的な曝露はありません。

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

責任者

Zephyr

予約する

2026年08月03日

モデレーション

承諾済み

エントリ

VDB-411219

EPSS

0.00000

アクティビティ

非常低い

ソース

Want to know what is going to be exploited?

We predict KEV entries!