CVE-2026-89471 in Linux情報

要約

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

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

power: supply: cros_usbpd-charger: ECが報告するポート数を制限した

cros_usbpd_charger_probe()はECから2つのポート数を読み取り、固定サイズの配列を初期化する際にそのうちの1つであるnum_charger_portsをループの上限として使用します:

struct port_data *ports[EC_USB_PD_MAX_PORTS]; /* 8エントリ */
... for (i = 0; i < charger->num_charger_ports; i++) charge r->ports[charger->num_registered_psy++] = port;

num_usbpd_ports(EC_CMD_USB_PD_PORTS由来)とnum_charger_ports(EC_CMD_CHARGE_PORT_COUNT由来)の両方は、ECによって報告されるu8値です。行われる検証は、2つのECが報告する値同士を比較する単純な健全性チェックのみです:

if (num_charger_ports < num_usbpd_ports || num_charger_ports > num_usbpd_ports + 1) return -EPROTO;

どちらの计数も配列ports[]のサイズであるEC_USB_PD_MAX_PORTSに対しては検証されません。malfunctioning(故障)、悪意のある、または侵害されたECがnum_usbpd_ports == num_charger_ports == N(N > 8の場合、例えば両方とも255など)を報告すると、このチェックに合格し、ループによってports[]配列(devm_kzalloc()で割り当てられたcharger_data内に埋め込まれている)の8エントリに対してN個のポインタが書き込まれ、最大247エントリ分(約1976バイト)オーバーフローします:これはslab out-of-bounds writeです。

ports[]配列に収まらないようなポート数を拒否するよう修正しました。

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

責任者

Linux

予約する

2026年09月11日

モデレーション

承諾済み

エントリ

VDB-402853

EPSS

0.00000

アクティビティ

非常低い

ソース

Interested in the pricing of exploits?

See the underground prices here!