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

> A use-after-free vulnerability in the Linux kernel audit subsystem allows attackers to cause denial of service or potentially execute code via fsnotify rule autoremove.

- **Severity:** Critical 9.8 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 11 Sep 2026
- **Updated:** 19 Oct 2026
- **Also known as:** AZL-100316, BELL-CVE-2026-89643, DEBIAN-CVE-2026-89643, GHSA-qh9h-fg7c-vgxw, UBUNTU-CVE-2026-89643

## What is CVE-2026-89643?

CVE-2026-89643 is a critical use after free vulnerability in Linux, published on 11 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official 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]

## Which versions are affected by CVE-2026-89643?


## How do I fix CVE-2026-89643?

Apply the vendor's patch.

## Is CVE-2026-89643 being exploited?

There is no known exploitation of CVE-2026-89643 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-89643 and fix it if it is affected.

What it is: CVE-2026-89643 is a critical use after free vulnerability in Linux, published on 11 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-89643 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-89643/ (Markdown: https://insights.sbomify.com/CVE-2026-89643/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-89643
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-89643
- OSV: https://osv.dev/vulnerability/CVE-2026-89643

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-89643/
Summaries are generated and may contain mistakes; the official description above is the record.
