CVE-2025-39928

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
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc4:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: i2c: rtl9300: asegurar que la longitud de los datos esté dentro del rango soportado Añadir una verificación explícita para la longitud de la transferencia a 'rtl9300_i2c_config_xfer' para asegurar que la longitud de los datos esté dentro del rango soportado. En particular, una longitud de datos de 0 no es soportada por el hardware y causa un comportamiento no deseado o destructivo. Esta limitación se hace obvia al observar la documentación del registro [1]. 4 bits están reservados para DATA_WIDTH y el valor de estos 4 bits se usa como N + 1, permitiendo un rango de longitud de datos de 1 <= len menor o igual que 16. Afectada por esto es la Operación Rápida SMBus que funciona con una longitud de datos de 0. Pasar 0 como longitud causa un desbordamiento negativo del valor debido a: (len - 1) & 0xf y especificando efectivamente una longitud de transferencia de 16 a través de los registros. Esto causa una operación de escritura de 16 bytes en lugar de una Escritura Rápida. Por ejemplo, en módulos SFP sin EEPROM protegida contra escritura, esto los inutiliza parcialmente al sobrescribir algunos bytes iniciales. Para completar, añadir también una peculiaridad para la longitud cero. [1] HTTPS://svanheule.net/realtek/longan/register/i2c_mst1_ctrl2

Information

Published : 2025-10-01 08:15

Updated : 2026-10-19 21:10


NVD link : CVE-2025-39928

Mitre link : CVE-2025-39928

CVE.ORG link : CVE-2025-39928


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-191

Integer Underflow (Wrap or Wraparound)