All vulnerabilities
CVE-2026-99203

Linux: pipe: preserve existing fasync readers on writer setup failure

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in4c42ce499ce4b1c787e61082e3b13df4f30c4eaaAlso 2259809e5b7043c4ba20af7b14ba3e471cf55521, 40bb03d3ea6f6a915218508819ecc4d7a7fa260dCVE List
Published28 Oct 2026Updated 28 Oct 2026CVE List

What fixes it

  • 4c42ce499ce4b1c787e61082e3b13df4f30c4eaaLinuxCVE List
  • 2259809e5b7043c4ba20af7b14ba3e471cf55521LinuxCVE List
  • 40bb03d3ea6f6a915218508819ecc4d7a7fa260dLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

pipe: preserve existing fasync readers on writer setup failure

F_SETFL and FIOASYNC decide whether to invoke ->fasync() before pipe_fasync() takes pipe->mutex. Two enables of one O_RDWR FIFO can therefore both enter the callback.

fasync_helper() allocates before checking for an existing entry. If the first enable installs both entries, a second enable can update the reader entry and then fail the allocation for the writer entry. The error path removes the pre-existing reader entry, clearing FASYNC while the writer entry remains registered. __fput() then skips ->fasync(), so a later pipe notification can dereference the freed file or its f_owner. An unprivileged memory-pressure reproducer triggers a KASAN slab-use-after-free in send_sigio() through this path.

Keep the reader helper's result and undo the registration only if this call added it. The pipe mutex serializes changes to both lists, so a failed new registration still removes its reader, while a failed duplicate preserves the existing registrations and FASYNC. Successful duplicate enables continue to update fa_fd as before.

Text from CVE List

Affected versions 8

  • Linuxaffected: 76398425bb06b07cc3a3b1ce169c67dc9d6874ed before 4c42ce499ce4b1c787e61082e3b13df4f30c4eaaCVE List
  • Linuxaffected: 76398425bb06b07cc3a3b1ce169c67dc9d6874ed before 2259809e5b7043c4ba20af7b14ba3e471cf55521CVE List
  • Linuxaffected: 76398425bb06b07cc3a3b1ce169c67dc9d6874ed before 40bb03d3ea6f6a915218508819ecc4d7a7fa260dCVE List
  • Linuxaffected: 2.6.30CVE List
  • Linuxunaffected: all versions before 2.6.30CVE List
  • Linuxunaffected: 6.18.59 through 6.18.*CVE List
  • Linuxunaffected: 7.2.13 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 3