Look up another CVE · open CVE-2026-74506 in the interactive tracker
CVE-2026-74506
afs: Fix UAF when sending a message
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
| Release | Status | Version | What this means |
|---|---|---|---|
| Debian 12bookworm | vulnerable | 6.1.190-1 | No 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 13trixie | vulnerable | 6.12.113-1 | No 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 14forky | fixed | 7.1.8-1 | Update the kernel and reboot. Fixed in 7.1.8-1. A running kernel keeps the old code until the machine restarts. |
| Debian unstablesid | fixed | 7.1.8-1 | Update 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
| Introduced | Fixed in | Commit |
|---|---|---|
| 5.8 | 6.18.44 | c0d3b81f703b |
| 5.8 | 7.1.8 | daaa726b14fc |
| 5.8 | 7.2 | 4af1ec68d54b |
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.