CVE-2019-14842
CVE-2019-14842
In short
The NBD protocol has a bug where a server can write data to the wrong memory location due to a mistake in checking chunk offsets. This allows an attacker controlling the server to overwrite memory and execute arbitrary code on the client.
Technical detail
A signed/unsigned integer confusion in the bounds check for structured replies in the newstyle NBD protocol fails to properly validate negative chunk offsets, allowing an attacker-controlled server to write data before the client's read buffer. Exploitation results in stack or heap memory corruption, enabling arbitrary code execution in the context of the NBD client process.
Summary generated and translated by AI from the official description.
Structured reply is a feature of the newstyle NBD protocol allowing the server to send a reply in chunks. A bounds check which was supposed to test for chunk offsets smaller than the beginning of the request did not work because of signed/unsigned confusion. If one of these chunks contains a negative offset then data under control of the server is written to memory before the read buffer supplied by the client. If the read buffer is located on the stack then this allows the stack return address from nbd_pread() to be trivially modified, allowing arbitrary code execution under the control of the server. If the buffer is located on the heap then other memory objects before the buffer can be overwritten, which again would usually lead to arbitrary code execution.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Affected products
[UNKNOWN] · libnbdWant to know if your infrastructure is exposed to this?
Talk to TrueHacking →