CVE-2025-38708
kernel: drbd: add missing kref_get in handle_write_conflicts
Severity
UnknownRed Hat Product Security
CVSS
Review impact separately from score.
Published · September 4, 2025
Updated · October 30, 2026
Description
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.
Statement
This vulnerability does not impact Red Hat Enterprise Linux as the Distributed Replicated Block Device (DRBD) subsystem is not enabled or shipped in supported Red Hat kernels. The underlying defect involves a reference-counting error during write-conflict resolution in multi-primary DRBD configurations that could cause a kernel crash via use-after-free. Because the affected driver code is not present in Red Hat Enterprise Linux releases, enterprise deployments are unaffected under standard configurations.
Mitigation
No mitigation is specified in collected source.
CVSS / CWE
CWE not specified