CVE-2025-38708

In the Linux kernel, the following vulnerability has been resolved: drbd: add missing kref_get in handle_write_conflicts With `two-primaries` enabled, DRBD tries to detect "concurrent" writes and handle write conflicts, so that even if you write to the same sector simultaneously on both nodes, they end up with the identical data once the writes are completed. In handling "superseeded" writes, we forgot a kref_get, resulting in a premature drbd_destroy_device and use after free, and further to kernel crashes with symptoms. Relevance: No one should use DRBD as a random data generator, and apparently all users of "two-primaries" handle concurrent writes correctly on layer up. That is cluster file systems use some distributed lock manager, and live migration in virtualization environments stops writes on one node before starting writes on the other node. Which means that other than for "test cases", this code path is never taken in real life. FYI, in DRBD 9, things are handled differently nowadays. We still detect "write conflicts", but no longer try to be smart about them. We decided to disconnect hard instead: upper layers must not submit concurrent writes. If they do, that's their fault.
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:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

Configuration 2 (hide)

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

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: drbd: añadir kref_get faltante en handle_write_conflicts Con 'two-primaries' habilitado, DRBD intenta detectar escrituras 'concurrentes' y manejar conflictos de escritura, de modo que incluso si se escribe en el mismo sector simultáneamente en ambos nodos, terminan con los datos idénticos una vez que las escrituras se completan. Al manejar escrituras 'superpuestas', olvidamos un kref_get, lo que resultó en un drbd_destroy_device prematuro y uso después de liberar, y además en fallos del kernel con síntomas. Relevancia: Nadie debería usar DRBD como un generador de datos aleatorios, y aparentemente todos los usuarios de 'two-primaries' manejan las escrituras concurrentes correctamente en la capa superior. Es decir, los sistemas de archivos en clúster usan algún gestor de bloqueo distribuido, y la migración en vivo en entornos de virtualización detiene las escrituras en un nodo antes de iniciar escrituras en el otro nodo. Lo que significa que, aparte de para 'casos de prueba', esta ruta de código nunca se toma en la vida real. Para su información, en DRBD 9, las cosas se manejan de manera diferente hoy en día. Todavía detectamos 'conflictos de escritura', pero ya no intentamos ser inteligentes al respecto. Decidimos desconectar de forma contundente en su lugar: las capas superiores no deben enviar escrituras concurrentes. Si lo hacen, es su culpa.

Information

Published : 2025-09-04 16:15

Updated : 2026-10-19 21:10


NVD link : CVE-2025-38708

Mitre link : CVE-2025-38708

CVE.ORG link : CVE-2025-38708


JSON object : View

Products Affected

debian

  • debian_linux

linux

  • linux_kernel
CWE
CWE-416

Use After Free