CVE-2026-80772 in Linux情報

要約

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

Linuxカーネルにおいて、以下の脆弱性が修正されました:

HID: nintendo: joycon_ctlr_read_handler()における配列外読み込み(out-of-bounds read)の修正

joycon_ctlr_read_handler()は、受信したHID入力レポートをstruct joycon_input_reportにキャストして解析しますが、このキャストには12バイトという長さチェックのみでガードがかけられています:

if (size >= 12) /* make sure it contains the input report */ joycon_parse_report(ctlr, (struct joycon_input_report *)data);

struct joycon_input_reportのサイズは49バイトです。これは、13バイトのヘッダーに続き、IMUアーム部分が36バイトであるunionから構成されています。IMUレポートの場合、joycon_parse_report() -> joycon_parse_imu_report()はこのunion(構造体オフセット 13..48)を走査するため、データ[0] == JC_INPUT_IMU_DATAであり長さがちょうど12バイトのレポートはガード条件を満たしますが、宣言された長さから最大37バイト分を超えて読み込まれます。この過剰に読み込まれたバイトは加速度計/ジャイロスコープ値としてデコードされ、「(IMU)」入力デバイスを通じてユーザー空間へ転送されるため、ドライバ内部メモリが漏洩します。データ[0]とsizeは、悪意のあるまたはなりすましJoy-Con/Proコントローラによって完全に制御可能です。

受信バッファのサイズは最大レポート長に合わせて設定されているため、これはスラブ(slab)領域における配列外アクセスではなく、割り当てられたメモリ内での過剰読み込みですが、デコードされたバイト値は依然としてユーザー空間に到達します。

joycon_ctlr_handle_event()内の兄弟となるsubcmdパスでは、同じキャストに対して正しい境界チェックが既に適用されています:

if (size < sizeof(struct joycon_input_report) || data[0] != JC_INPUT_SUBCMD_REPLY)
break;

ここではsizeof(struct joycon_input_report)による境界チェックを同様に使用します。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Linux

予約する

2026年08月26日

モデレーション

承諾済み

エントリ

VDB-398960

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!