[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025100125-CVE-2025-39928-b66c@gregkh>
Date: Wed, 1 Oct 2025 10:07:28 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2025-39928: i2c: rtl9300: ensure data length is within supported range
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
i2c: rtl9300: ensure data length is within supported range
Add an explicit check for the xfer length to 'rtl9300_i2c_config_xfer'
to ensure the data length isn't within the supported range. In
particular a data length of 0 is not supported by the hardware and
causes unintended or destructive behaviour.
This limitation becomes obvious when looking at the register
documentation [1]. 4 bits are reserved for DATA_WIDTH and the value
of these 4 bits is used as N + 1, allowing a data length range of
1 <= len <= 16.
Affected by this is the SMBus Quick Operation which works with a data
length of 0. Passing 0 as the length causes an underflow of the value
due to:
(len - 1) & 0xf
and effectively specifying a transfer length of 16 via the registers.
This causes a 16-byte write operation instead of a Quick Write. For
example, on SFP modules without write-protected EEPROM this soft-bricks
them by overwriting some initial bytes.
For completeness, also add a quirk for the zero length.
[1] https://svanheule.net/realtek/longan/register/i2c_mst1_ctrl2
The Linux kernel CVE team has assigned CVE-2025-39928 to this issue.
Affected and fixed versions
===========================
Issue introduced in 6.13 with commit c366be720235301fdadf67e6f1ea6ff32669c074 and fixed in 6.16.8 with commit c91382328fc89f73144d5582f2d8f1dd3e41c8f7
Issue introduced in 6.13 with commit c366be720235301fdadf67e6f1ea6ff32669c074 and fixed in 6.17 with commit 06418cb5a1a542a003fdb4ad8e76ea542d57cfba
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2025-39928
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
drivers/i2c/busses/i2c-rtl9300.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/c91382328fc89f73144d5582f2d8f1dd3e41c8f7
https://git.kernel.org/stable/c/06418cb5a1a542a003fdb4ad8e76ea542d57cfba
Powered by blists - more mailing lists