CVE-2025-39682

In the Linux kernel, the following vulnerability has been resolved: tls: fix handling of zero-length records on the rx_list Each recvmsg() call must process either - only contiguous DATA records (any number of them) - one non-DATA record If the next record has different type than what has already been processed we break out of the main processing loop. If the record has already been decrypted (which may be the case for TLS 1.3 where we don't know type until decryption) we queue the pending record to the rx_list. Next recvmsg() will pick it up from there. Queuing the skb to rx_list after zero-copy decrypt is not possible, since in that case we decrypted directly to the user space buffer, and we don't have an skb to queue (darg.skb points to the ciphertext skb for access to metadata like length). Only data records are allowed zero-copy, and we break the processing loop after each non-data record. So we should never zero-copy and then find out that the record type has changed. The corner case we missed is when the initial record comes from rx_list, and it's zero length.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
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:*:*:*:*:*:*

Configuration 2 (hide)

cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*

Configuration 3 (hide)

AND
cpe:2.3:o:siemens:simatic_cn_4100_firmware:*:*:*:*:*:*:*:*
cpe:2.3:h:siemens:simatic_cn_4100:-:*:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: tls: soluciona el manejo de registros de longitud cero en la rx_list Cada llamada a recvmsg() debe procesar o bien - solo registros DATA contiguos (cualquier número de ellos) - un registro que no sea DATA Si el siguiente registro tiene un tipo diferente al que ya ha sido procesado, salimos del bucle de procesamiento principal. Si el registro ya ha sido descifrado (lo cual puede ocurrir con TLS 1.3 donde no conocemos el tipo hasta el descifrado), ponemos en cola el registro pendiente en la rx_list. La siguiente recvmsg() lo recogerá de ahí. Poner en cola el skb en la rx_list después del descifrado de copia cero no es posible, ya que en ese caso desciframos directamente al búfer del espacio de usuario, y no tenemos un skb para poner en cola (darg.skb apunta al skb del texto cifrado para acceder a metadatos como la longitud). Solo a los registros de datos se les permite la copia cero, y rompemos el bucle de procesamiento después de cada registro que no sea de datos. Así que nunca deberíamos hacer copia cero y luego descubrir que el tipo de registro ha cambiado. El caso excepcional que pasamos por alto es cuando el registro inicial proviene de la rx_list, y es de longitud cero.

21 Sep 2026, 12:00

Type Values Removed Values Added
CPE cpe:2.3:h:siemens:simatic_cn_4100:-:*:*:*:*:*:*:*
cpe:2.3:o:siemens:simatic_cn_4100_firmware:*:*:*:*:*:*:*:*
First Time Siemens
Siemens simatic Cn 4100
Siemens simatic Cn 4100 Firmware
References () https://cert-portal.siemens.com/productcert/html/ssa-032379.html - () https://cert-portal.siemens.com/productcert/html/ssa-032379.html - Third Party Advisory
References () https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-39682 - () https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-39682 - US Government Resource

18 Sep 2026, 20:16

Type Values Removed Values Added
References
  • () https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-39682 -

18 Sep 2026, 14:17

Type Values Removed Values Added
CWE CWE-754

Information

Published : 2025-09-05 18:15

Updated : 2026-10-19 21:10


NVD link : CVE-2025-39682

Mitre link : CVE-2025-39682

CVE.ORG link : CVE-2025-39682


JSON object : View

Products Affected

debian

  • debian_linux

linux

  • linux_kernel

siemens

  • simatic_cn_4100_firmware
  • simatic_cn_4100
CWE
NVD-CWE-Other CWE-754

Improper Check for Unusual or Exceptional Conditions