CVE-2026-72014: drbd: reject data replies with an out-of-range payload size

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026081508-CVE-2026-72014-3852@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

drbd: reject data replies with an out-of-range payload size

recv_dless_read() receives a P_DATA_REPLY from a peer into the bio of an
outstanding read request. The peer-supplied payload length reaches it as
the signed int data_size, and two peer-controlled inputs can make it
negative. With a negotiated data-integrity-alg the digest length is
subtracted first, so a reply whose payload is smaller than the digest
underflows data_size. With no integrity algorithm (the default) data_size
is assigned from the unsigned h95/h100 wire length and drbdd() never
bounds it for a payload-carrying command, so a length above INT_MAX casts
it negative; this path needs no non-default feature. The bio receive loop
then computes expect = min_t(int, data_size, bv_len), which is negative,
and drbd_recv_all_warn(mapped, expect) receives with a size_t of SIZE_MAX
into the first mapped page.

The sibling receive path read_in_block() is not affected: it uses an
unsigned size and rejects it against DRBD_MAX_BIO_SIZE before receiving.
Reject a data reply whose size is negative after the optional digest
subtraction, covering both triggers.

Impact: a malicious or man-in-the-middle DRBD peer copies attacker-chosen
bytes past a bio page in the receiver, corrupting kernel memory. A node
that reads from its peer (a diskless node, or read-balancing to the peer)
is exposed in the default configuration; data-integrity-alg is not
required.

The Linux kernel CVE team has assigned CVE-2026-72014 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 5.10.261 with commit bca33f5442c3094511719d9db792ce3165d87e76
	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 5.15.212 with commit 741a682535deffe9ab7e5c89caf83571efbc9dd9
	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 6.1.178 with commit f14e87d7b166490bceb9603b39310e51595d05b9
	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 6.6.145 with commit f16866c62656865854106b79bcf6e4ca97a51a92
	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 6.12.97 with commit 5f59a8142000f0b8f75c432209ead73c424a745d
	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 6.18.40 with commit 38cc4867540ae8beedfe41a1a1a6ed37052c77d6
	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 7.1.5 with commit 648d4317326e6aa3f8c05cbf0fd14cc2eba6ca99
	Issue introduced in 2.6.33 with commit b411b3637fa71fce9cf2acf0639009500f5892fe and fixed in 7.2-rc3 with commit bd910a7660d280595ef94cb6d193951d855d330f

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-2026-72014
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/block/drbd/drbd_receiver.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/bca33f5442c3094511719d9db792ce3165d87e76
	https://git.kernel.org/stable/c/741a682535deffe9ab7e5c89caf83571efbc9dd9
	https://git.kernel.org/stable/c/f14e87d7b166490bceb9603b39310e51595d05b9
	https://git.kernel.org/stable/c/f16866c62656865854106b79bcf6e4ca97a51a92
	https://git.kernel.org/stable/c/5f59a8142000f0b8f75c432209ead73c424a745d
	https://git.kernel.org/stable/c/38cc4867540ae8beedfe41a1a1a6ed37052c77d6
	https://git.kernel.org/stable/c/648d4317326e6aa3f8c05cbf0fd14cc2eba6ca99
	https://git.kernel.org/stable/c/bd910a7660d280595ef94cb6d193951d855d330f
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.