data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-74506 in the interactive tracker

CVE-2026-74506

afs: Fix UAF when sending a message

7.8 EPSS 0.2% AV:L

Published 2026-08-15 (2 months ago) by the Linux kernel CNA. Subsystem fs/afs. Debian urgency: not yet assigned.

What to do, per Debian release

Debian's own status for CVE-2026-74506 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormvulnerable6.1.190-1No fix published anywhere yet, neither in Debian nor upstream for the series bookworm tracks. Watch the Debian tracker page for this CVE. Advisories for bookworm have historically landed a median of 23 days after publication.
Debian 13trixievulnerable6.12.113-1No fix published anywhere yet, neither in Debian nor upstream for the series trixie tracks. Watch the Debian tracker page for this CVE. Advisories for trixie have historically landed a median of 11 days after publication.
Debian 14forkyfixed7.1.8-1Update the kernel and reboot. Fixed in 7.1.8-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.8-1Update the kernel and reboot. Fixed in 7.1.8-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

In afs_make_call(), there's a race with async call reception and destruction. If a call is dispatched that doesn't have call->write_iter set (used to specify the data content for FS.StoreData), then the first rxrpc_kernel_send_data() will not set MSG_MORE in the msghdr. Once rxrpc_send_data() queues the last request packet, the response could come in at any time and cause the call to be completed and put. However, afs_make_call() will look at the call again to see it ->write_iter should be handled - something it's only allowed to do if it has its own ref on the call. Whilst this is the case for synchronous calls, it isn't true for async calls such as FS.FetchData. There's also a potential UAF in afs_make_call() in the event that an asynchronous call is being sent, but the call fails in some way (e.g. it gets aborted from the server). The problem there is that afs_make_call() tries to abort a call if the rxrpc send fails, but the asynchronous notification from rxrpc may have caused the afs_call to be torn down. generic/650 plays games with randomly taking CPUs offline, and can interject a significant delay such that the call is deallocated before afs_make_call() gets to check call->write_iter - and a UAF ensues (caught by KASAN). BUG: KASAN: slab-use-after-free in afs_make_call+0x1c90/0x2210 [kafs] Read of size 8 at addr ffff888035e050e8 by task fsstress/1409 Fix this by making afs_make_op_call() give the op->call its own ref rather than transferring the caller's ref to it and then dropping the ref when afs_make_call() returns. This also means that the afs_make_call() func never loses its ref on the call now.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

fs/afs/internal.h

What this is
AFS FILESYSTEMMAINTAINERS section matched on fs/afs/ · linux-afs@lists.infradead.org · Supported
Show whether Debian builds this, per release

Not established. This site could not find the build rule for the affected file in the kernel trees Debian ships, so it has no answer about whether Debian compiles this code. Read that as unknown, never as absent.

  • bookworm, trixie, forky, sid?
?
not established - no Makefile entry for the affected file

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS

Signals

Published
2026-08-15 (2 months ago)source
CVSS
7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.17%, higher than 5.8% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
not yet assignedsource
Subsystem
fs/afs

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
5.86.18.44c0d3b81f703b
5.87.1.8daaa726b14fc
5.87.24af1ec68d54b

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
The UAF is in kAFS client afs_make_call() during outbound FS.FetchData/YFS.FetchData RPCs, reached via local VFS read or readahead on an afs-mounted file (read_iter → afs_issue_read → afs_fs_fetch_data → afs_make_op_call), not from unsolicited remote packet processing alone.
AC:LAttack complexity, low
The attacker controls both sides of the race: concurrent reads/readahead (as in xfstests generic/650 fsstress) while a fast or malicious AFS server reply completes and frees the async afs_call before afs_make_call() re-checks call->write_iter; no uncontrolled memory layout is required.
PR:LPrivileges required, low
Any unprivileged local user with read permission on an already-mounted AFS volume can trigger async FetchData; mounting requires admin, but exercising the vulnerable read path needs only normal file access, matching the unprivileged fsstress reproducer.
UI:NUser interaction, none
No victim interaction is required; the attacker or local stress tool initiates the reads that dispatch the vulnerable async RPC, and AFS being mounted is an environmental precondition rather than interactive user action.
S:UScope, unchanged
The slab use-after-free in the kernel AFS client may enable local privilege escalation but does not cross a VM, container runtime, or IOMMU security boundary.
C:HConfidentiality impact, high
KASAN reports slab-use-after-free with an 8-byte read of call->write_iter after async completion frees the afs_call; UAF over attacker-influenceable freed slab memory enables arbitrary kernel memory read primitives.
I:HIntegrity impact, high
The same use-after-free in afs_make_call() can be leveraged via heap grooming and spraying to obtain arbitrary kernel write or control-flow hijack, not merely a benign crash.
A:HAvailability impact, high
The bug reliably triggers KASAN failures and kernel oops during normal async FetchData I/O, and UAF races can panic or wedge the system even before full exploit development.