Skip to content
VulniPulse
Critical 2 vendors · 2 advisories

CVE-2026-89662: NFSD: Prevent lock owner use-after-free during client teardown

CVE-2026-89662 key facts

CISA KEV
Not listed (catalogue checked )
Highest advisory rating
Critical
CVSS base score
9.8 (NetApp), 7 (Red Hat)
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H · base score 9.8, scored by LinuxAttack vector: network. Attack complexity: low. Privileges required: none. User interaction: none. Scope: unchanged. Confidentiality impact: high. Integrity impact: high. Availability impact: high.
EPSS
0.69% chance of exploitation in the next 30 days (53rd percentile). FIRST EPSS, .
CISA SSVC
Exploitation: none observed. Automatable: yes. Technical impact: total. CISA, .
Vendor advisories
2 from NetApp, Red Hat
Assigned by
Linux (CNA)
CVE record published
Listed by VulniPulse
Record changed

Ratings, versions and fixes are quoted from the vendor advisories that cover only CVE-2026-89662; each belongs to its advisory, not to every product listed. How records are collected and checked.

Description

In the Linux kernel, the following vulnerability has been resolved: NFSD: Prevent lock owner use-after-free during client teardown __destroy_client() releases a client's open owners, but a lock owner whose only reference is a blocked lock (nbl) stays on cl_ownerstr_hashtbl. client_has_state() does not count a bare owner, so DESTROY_CLIENTID can reach __destroy_client() with such owners present. __destroy_client() then walks the table, calling remove_blocked_locks() on each owner without a reference. Freeing a blocked lock drops the owner reference held via flc_owner. The per-net laundromat reaps blocked locks from nn->blocked_locks_lru independently of client state. The two paths share blocked_locks_lock only for the list splice, not the owner's lifetime. The laundromat therefore frees the owner as __destroy_client() dereferences it, a NULL dereference in remove_blocked_locks(). nfsd4_release_lockowner() holds a reference across the same call; __destroy_client() does not. Hold cl_lock across the walk, taking a reference and unhashing each owner, then drop it before remove_blocked_locks() and nfs4_put_stateowner(), which take blocked_locks_lock and cl_lock.

Text from the CVE.org record (Linux).

Vendor advisories for CVE-2026-89662

NetApp

1 advisory
  • Advisory severityCritical9.8

    Critical [CVE-2026-89662] Linux Kernel Vulnerability in NetApp Products

    NTAP-20261002-0013Source published Source updated

    Linux kernel versions 4.14.31 through 4.14.336, 4.15.14 through 4.15.18, 4.16-rc7 through 6.12.108, 4.9.91 through 4.13.16, 6.13-rc1 through 6.18.49 and 6.19-rc1 through 7.2.3 are susceptible to a vulnerability which when successfully exploited could lead to disclosure of sensitive information, addition or modification of data or Denial of Service (DoS). NetApp reports that one or more additional products remain under investigation; review the canonical advisory for current status. NetApp states there is no workaround available at this time.

    Affected products in this advisory
    No product details extracted. Check the source bulletin.
    Source-reported affected versions
    • 4.14.31
    • 4.14.336
    • 4.15.14
    • 4.15.18

    8 more entries in the full advisory.

    Source-reported fixed versions
    No fixed-version detail extracted. This does not mean no fix exists.
    Mitigation guidance
    No mitigation guidance extracted; consult the source.

Red Hat

1 advisory
  • Advisory severityHigh7.0

    High [CVE-2026-89662] Prevent lock owner use-after-free during client teardown

    CVE-2026-89662Source published Source updated

    In the Linux kernel, the following vulnerability has been resolved: NFSD: Prevent lock owner use-after-free during client teardown __destroy_client() releases a client's open owners, but a lock owner whose only reference is a blocked lock (nbl) stays on cl_ownerstr_hashtbl. client_has_state() does not count a bare owner, so DESTROY_CLIENTID can reach __destroy_client() with such owners present. __destroy_client() then walks the table, calling remove_blocked_locks() on each owner without a reference. Freeing a blocked lock drops the owner reference held via flc_owner. The per-net laundromat reaps blocked locks from nn->blocked_locks_lru independently of client state. The two paths share blocked_locks_lock only for the list splice, not the owner's lifetime. The laundromat therefore frees…

    Affected products in this advisory
    • Red Hat Enterprise Linux 10
    • Red Hat Enterprise Linux 6
    • Red Hat Enterprise Linux 7
    • Red Hat Enterprise Linux 8

    3 more entries in the full advisory.

    Source-reported affected versions
    Affected-version details not available in this record.
    Source-reported fixed versions
    No fixed-version detail extracted. This does not mean no fix exists.
    Mitigation guidance
    No mitigation guidance extracted; consult the source.

References

Timeline

  1. CVE record published
  2. First vendor advisory listed by VulniPulse
  3. CVE record last updated

All NetApp advisories

Get an email when NetApp publishes the next one.

See NetApp's last 90 days of advisories first. Then choose one product with live alerts free for life, or a free month of real-time alerts on everything with the severity, the fixed version and the vendor's link (card needed, then US$15/month; we email you before the first charge).

Alert me about NetApp

iPhone and Android apps · New on the App Store

Get alerts for new CVEs on your phone.

Choose a whole vendor or a precise platform, then receive matching security advisories by phone notification, email, or both. Coverage follows 34 official vendor sources and 160+ reviewed platform categories.

Matching phone alertsOptional email delivery