CVE-2026-99203

pipe: preserve existing fasync readers on writer setup failure

State
Published
Severity
Not scored
Published
Oct 28, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 6041bcd185d4df051490fe166e64feae6c3b8291Affected
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 7cdbfa22a7e270b155ddb958b1583a999c0c8abbAffected
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 22c7f57b0c0b0b8e19cfb41a1bd85f55715ad386Affected
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 94be790dd6fbe0912f35bb711bea8ef3687eaca9Affected
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 9b0aa2a1d8df51f3dcb363c3a2d9531098e88dc6Affected
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 4c42ce499ce4b1c787e61082e3b13df4f30c4eaaAffected
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 2259809e5b7043c4ba20af7b14ba3e471cf55521Affected
  • 76398425bb06b07cc3a3b1ce169c67dc9d6874ed to before 40bb03d3ea6f6a915218508819ecc4d7a7fa260dAffected
LinuxLinux
  • 2.6.30Affected
  • before 2.6.30Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.161 through 6.6.*Not affected
  • 6.12.115 through 6.12.*Not affected
  • 6.18.59 through 6.18.*Not affected
  • 7.2.13 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.