製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Title LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。hwmonの(pmbus/q54sj108a2) debugfs読み取り時に発生するスタックバッファオーバーフローの問題です。q54sj108a2_debugfs_read関数は、bin2hex()に誤った引数を渡していたため、スタックバッファオーバーフローが発生していました。この関数では現在、'data'を出力先、'data_char'を入力元として渡しています。bin2hex()は入力バイトごとに2つの16進文字を生成するため、32バイトのブロック読み取りで64バイトの出力となります。しかし、'data'は34バイト(I2C_SMBUS_BLOCK_MAX + 2)のサイズしかなく、そのためバッファの末端から30バイト分がスタック上に書き込まれてしまいます。さらに、引数の順序が逆であったため、初期化済みのゼロの'data_char'から読み込み、'data'に書き込んでおり、実際のI2C読み取りに関係なく全てゼロが出力されていました。これを修正するために、以下の対応を行いました。1. 'data_char'のサイズを66バイトに拡張し、16進出力を安全に格納可能にしました。2. bin2hex()の引数の順序を正しくし、実際の読み取りバイト数を使用しました。3. 最終的なsimple_read_from_bufferの呼び出しで正しい出力バッファを指すポインタを使用しています。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

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

Publication Date May 8, 2026, midnight
Registration Date May 21, 2026, 10:51 a.m.
Last Update May 21, 2026, 10:51 a.m.
CVSS3.0 : 重要
Score 7.1
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
Affected System
Linux
Linux Kernel 5.11 以上 5.15.203 未満
Linux Kernel 5.16 以上 6.1.167 未満
Linux Kernel 6.13 以上 6.18.19 未満
Linux Kernel 6.19 以上 6.19.9 未満
Linux Kernel 6.2 以上 6.6.130 未満
Linux Kernel 6.7 以上 6.12.78 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月21日]
  掲載
May 21, 2026, 10:51 a.m.

NVD Vulnerability Information
CVE-2026-43380
Summary

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

hwmon: (pmbus/q54sj108a2) fix stack overflow in debugfs read

The q54sj108a2_debugfs_read function suffers from a stack buffer overflow
due to incorrect arguments passed to bin2hex(). The function currently
passes 'data' as the destination and 'data_char' as the source.

Because bin2hex() converts each input byte into two hex characters, a
32-byte block read results in 64 bytes of output. Since 'data' is only
34 bytes (I2C_SMBUS_BLOCK_MAX + 2), this writes 30 bytes past the end
of the buffer onto the stack.

Additionally, the arguments were swapped: it was reading from the
zero-initialized 'data_char' and writing to 'data', resulting in
all-zero output regardless of the actual I2C read.

Fix this by:
1. Expanding 'data_char' to 66 bytes to safely hold the hex output.
2. Correcting the bin2hex() argument order and using the actual read count.
3. Using a pointer to select the correct output buffer for the final
simple_read_from_buffer call.

Publication Date May 9, 2026, 12:16 a.m.
Registration Date May 9, 2026, 4:14 a.m.
Last Update May 12, 2026, 11:10 p.m.
Related information, measures and tools
Common Vulnerabilities List