PT-2026-64717 · Linux · Linux
CVE-2026-64496
·
Published
2026-07-25
·
Updated
2026-07-25
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
iio: event: Fix event FIFO reset race
iio event getfd() creates the event file descriptor with
anon inode getfd(), which allocates a new fd, creates the anonymous
file and installs it in the process fd table before returning to the
caller.The IIO code resets the event FIFO after
anon inode getfd() has returned,
but before IIO GET EVENT FD IOCTL has copied the fd number to userspace.
But since fd tables are shared between threads, another thread can guess
the newly allocated fd number and issue a read() on it as soon as the fd
has been installed.This means the
kfifo to user() in iio event chrdev read() can run in
parallel with the kfifo reset out() in iio event getfd().The kfifo documentation says that
kfifo reset out() is only safe when it
is called from the reader thread and there is only one concurrent reader.
Otherwise it is dangerous and must be handled in the same way as
kfifo reset().If that happens,
kfifo to user() can advance the FIFO out index based
on state from before the reset, after the reset has already moved the out
index to the current in index. That can leave the FIFO with an out
index past the in index. A later read() can then see an underflowed
FIFO length and copy more data than the event FIFO buffer contains. This
can result in an out-of-bounds read and leak adjacent kernel memory to
userspace.Move the FIFO reset before
anon inode getfd(). At that point the event fd is
marked busy, but the new fd has not been installed yet, so userspace cannot
access it while the FIFO is reset. Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux