製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける不特定の脆弱性
Title LinuxのLinux Kernelにおける不特定の脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。spi: microchip-core-qspiに関するチップセレクトの手動制御の問題です。coreQSPI IPは単一のチップセレクトのみをサポートしており、ハードウェアによって自動的に制御されています。送信バッファに最初の書き込みが行われるとチップセレクトは低レベルにセットされ、FRAMESレジスタのTOTALBYTESフィールドに書き込まれたバイト数がバス上で送信されると高レベルに戻ります。追加のデバイスはチップセレクトにGPIOを使用する必要があります。2つのデバイスがこのQSPIコントローラに接続されている場合、組み込みのチップセレクトがLinuxがGPIOに接続されたデバイスにアクセスしようとした際に低レベルにセットされることが報告されました。この問題は、SPIコントローラに複数のデバイスを接続するボードがすべてGPIOを使ってチップセレクトを制御しており、組み込みのチップセレクトが全く使用されていなかったため、検出されませんでした。組み込みのチップセレクトは自動制御され、アクティブ時は低レベル、非アクティブ時は高レベルとなるため、アクティブハイのデバイスやチップセレクト無効時に送信が必要なデバイスには使用できませんでした。ドライバを修正し、exec_opコールバックでのmem_opsに対しては転送全体にわたりチップセレクトをアクティブに保つ動作を維持しつつ、通常の転送にはcoreが使用できるset_csコールバックを実装し、チップセレクトを直接制御するようにしました。この修正の一環として、mchp_coreqspi_setup_op()の既存セットアップコールバックは削除されました。複数デバイスが存在する際に操作中にCLKIDLEフィールドを変更するのは安全ではないため、このコードは完全に削除されました。MASTERおよびENABLEフィールドの設定はプローブ時に一度行えばよく、各デバイスごとに再実行する必要はありません。新セットアップコールバックはソフトウェア制御モードにおけるチップセレクトのリセット値が低レベルであるため、アクティブローのデバイスに対して組み込みチップセレクトを非アクティブ状態に設定します。

Possible impacts ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date May 28, 2026, midnight
Registration Date June 11, 2026, 4:22 p.m.
Last Update June 11, 2026, 4:22 p.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.1 以上 6.18.30 未満
Linux Kernel 6.19 以上 7.0.7 未満
Linux Kernel 7.1
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年06月11日]
  掲載
June 11, 2026, 4:22 p.m.

NVD Vulnerability Information
CVE-2026-46148
Summary

In the Linux kernel, the following vulnerability has been resolved:

spi: microchip-core-qspi: control built-in cs manually

The coreQSPI IP supports only a single chip select, which is
automagically operated by the hardware - set low when the transmit
buffer first gets written to and set high when the number of bytes
written to the TOTALBYTES field of the FRAMES register have been sent on
the bus. Additional devices must use GPIOs for their chip selects.
It was reported to me that if there are two devices attached to this
QSPI controller that the in-built chip select is set low while linux
tries to access the device attached to the GPIO.

This went undetected as the boards that connected multiple devices to
the SPI controller all exclusively used GPIOs for chip selects, not
relying on the built-in chip select at all. It turns out that this was
because the built-in chip select, when controlled automagically, is set
low when active and high when inactive, thereby ruling out its use for
active-high devices or devices that need to transmit with the chip
select disabled.

Modify the driver so that it controls chip select directly, retaining
the behaviour for mem_ops of setting the chip select active for the
entire duration of the transfer in the exec_op callback. For regular
transfers, implement the set_cs callback for the core to use.

As part of this, the existing setup callback, mchp_coreqspi_setup_op(),
is removed. Modifying the CLKIDLE field is not safe to do during
operation when there are multiple devices, so this code is removed
entirely. Setting the MASTER and ENABLE fields is something that can be
done once at probe, it doesn't need to be re-run for each device.
Instead the new setup callback sets the built-in chip select to its
inactive state for active-low devices, as the reset value of the chip
select in software controlled mode is low.

Publication Date May 28, 2026, 7:16 p.m.
Registration Date May 29, 2026, 4:13 a.m.
Last Update May 28, 2026, 10:44 p.m.
Related information, measures and tools
Common Vulnerabilities List