JVNDB-2026-027761 | |
Zephyr ProjectのZephyrにおける複数の脆弱性 | |
| 概要 | |
subsys/net/lib/ocppのOCPP 1.6クライアントは、parse_rpc_msg()関数(subsys/net/lib/ocpp/ocpp_j.c)内でハンドルされたヘルパー関数extract_string_field()を使って受信したWAMP RPCフレームを解析していました。この関数は、strncpy(out_buf, token + 1, outlen - 1)でメッセージのuidおよびactionフィールドをコピーし、その後strchr(out_buf, '"')で結果をスキャンします。strncpyはソースが少なくともoutlen - 1 (127)バイト以上の場合、宛先をNUL終端しないため、後続のstrchrは128バイトの宛先バッファを越えて隣接するスタックメモリを読み込みます。バッファの外側に'"'バイトが見つかる場合、1バイトのバッファ外NUL書き込みも発生します。extract_payload()内の関連する欠陥では、最大長フレームが受信バッファを埋めた場合に、NUL終端されていない可能性のある受信バッファに対してstrchr/strrchrが実行されます。解析対象のバイトはwebsocketを介してOCPPセントラルシステムサーバから直接送られます。リーダースレッドはwebsocket_recv_msg()でrecv_bufを埋め、各受信DATAフレームごとにparse_rpc_msg()を呼び出します(subsys/net/lib/ocpp/ocpp.c)。悪意のある、もしくは乗っ取られたセントラルサーバや通信経路上の攻撃者(OCPPは一般的に平文のws://で展開されます)が、閉じ引用符なしで127バイト以上のuidまたはactionフィールドを持つRPCフレームを送信すると、バッファ外アクセスが発生します。主な影響はリモートから発生させることが可能なサービス拒否です。終端されていない走査はマップ外ページで障害を起こし、余分なNUL書き込みは隣接するスタック状態を破壊します。読みすぎたデータは相手側に反映されないため、情報漏洩は限定的です。この機能は実験的(EXPERIMENTAL)であり、明示的に有効化が必要です(CONFIG_OCPP)。修正としては、手動パーサを境界を尊重するjson_mixed_arr_parse()に置き換え、uidのコピーも明確にNUL終端されたバッファを使うことで、過読み問題の両方を解消しています。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 8.6 (重要) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Zephyr Project | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/08/02 |
| 登録日 | 2026/08/12 |
| 最終更新日 | 2026/08/12 |



