KernelScan.io

HIGH

afs ServerLookup UAF

CVE-2026-97584

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.0HIGH

01

In the Linux kernel, the following vulnerability has been resolved: afs: Fix incorrect free in candidate cleanup in afs_lookup_server() Fix afs_lookup_server() to not free an existing server's endpoint state when cleaning up a candidate server. The candidate record doesn't have an endpoint state yet at this point, so the free for that can just be removed.

02

Engine v0.6.0

Risk summary

A use-after-free in the AFS client's server lookup code frees an existing server's endpoint state during candidate cleanup, corrupting kernel heap memory. A local user with access to a mounted AFS volume can trigger this under concurrent server lookups, potentially leading to kernel crashes or memory corruption. Systems without AFS mounts or interactive users are not exposed.

Affectedfs/afs/server.c (afs client filesystem)

Vulnerability analysis

In the AFS network filesystem client, the server lookup routine allocates a candidate server record when no existing server is found. If the cleanup path is reached — for instance when a concurrent lookup has already created the server — the code incorrectly frees the endpoint state belonging to the existing, in-use server record instead of the candidate's. The candidate never had an endpoint state allocated at that point, so the freed object remains referenced by the live server, producing a use-after-free. The fix simply removes the erroneous free call. A local user with access to an AFS mount can trigger this by performing filesystem operations that cause concurrent server lookups, and the resulting heap corruption can compromise kernel memory integrity and stability.

03

BranchIntroducedFixed inPatch commit
6.126.12.1016.12.111981d72663dee
6.18—6.18.53e5bc0fa9959d
7.2—7.2.7349e713039a1
mainline—7.3044d596094af
cip/6.12—6.12.111-cip32981d72663dee

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32