CVE-2024-26844: block: Fix WARNING in _copy_from_iter

Description

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

block: Fix WARNING in _copy_from_iter

Syzkaller reports a warning in _copy_from_iter because an
iov_iter is supposedly used in the wrong direction. The reason
is that syzcaller managed to generate a request with
a transfer direction of SG_DXFER_TO_FROM_DEV. This instructs
the kernel to copy user buffers into the kernel, read into
the copied buffers and then copy the data back to user space.

Thus the iovec is used in both directions.

Detect this situation in the block layer and construct a new
iterator with the correct direction for the copy-in.

Classification

CVE ID: CVE-2024-26844

Affected Products

Vendor: Linux

Product: Linux

Exploit Prediction Scoring System (EPSS)

EPSS Score: 0.05% (probability of being exploited)

EPSS Percentile: 17.83% (scored less or equal to compared to others)

EPSS Date: 2025-02-04 (when was this score calculated)

References

https://git.kernel.org/stable/c/8fc80874103a5c20aebdc2401361aa01c817f75b
https://git.kernel.org/stable/c/0f1bae071de9967602807472921829a54b2e5956
https://git.kernel.org/stable/c/cbaf9be337f7da25742acfce325119e3395b1f1b
https://git.kernel.org/stable/c/13f3956eb5681a4045a8dfdef48df5dc4d9f58a6

Timeline