CVE-2026-74427 PUBLISHED

afs: Fix netns teardown to cancel the preallocation charger

Assigner: Linux
Reserved: 15.08.2026 Published: 15.08.2026 Updated: 17.08.2026

In the Linux kernel, the following vulnerability has been resolved:

afs: Fix netns teardown to cancel the preallocation charger

Fix the teardown of an afs network namespace to make sure it cancels the work item that keeps the preallocated rxrpc call/conn/peer queue charged before incoming calls are disabled (i.e. listen 0).

Also, if net->live is false because the afs netns is being deleted, make afs_charge_preallocation() skip charging and make afs_rx_new_call() avoid requeuing the charger.

(This was found by AI review).

Metrics

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

AV:N - Remote RxRPC/UDP traffic to the kafs callback manager on port 7001 reaches afs_rx_new_call through rxrpc incoming-call processing and can requeue charge_preallocation_work that touches per-net AFS state during namespace teardown, matching other network-reachable netns-teardown UAF bugs. AC:L - The attacker controls both sides of the race—namespace create/destroy timing via user namespaces or container lifecycle, plus concurrent RxRPC callback floods—and the follow-up fix confirms incoming I/O-thread calls can requeue the charger after listen(0); the window is wide and repeatable. PR:N - afs_rx_new_call is invoked during RXRPC_CONN_SERVICE_CHALLENGING before AFS credential verification completes, so a remote peer sending valid CM-service RxRPC DATA can drive the bug; alternatively an unprivileged user obtains CAP_NET_ADMIN via user namespaces to destroy the namespace. UI:N - No victim interaction such as mounting AFS volumes or opening files is required; exploitation relies on attacker-driven namespace teardown and/or RxRPC packets, both kernel-level events under attacker or infrastructure control. S:U - The UAF corrupts kernel heap objects within the same OS security authority; impact does not cross a VM, IOMMU, or KVM/Xen boundary into a separate security domain. C:H - charge_preallocation_work on afs_wq dereferences freed struct afs_net fields (socket, spare_incoming_call, nr_outstanding_calls) after per-net exit; UAF of slab objects enables arbitrary kernel memory disclosure via heap grooming. I:H - Continued charging and afs_alloc_call through freed afs_net writes into stale per-net counters and socket state; UAF supports heap spray and arbitrary kernel write or control-flow hijack primitives. A:H - Use-after-free on afs_net and its RxRPC socket during teardown causes kernel oops or panic; even without full exploitation the race reliably crashes the host and can be retriggered on demand.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to 63ccaf1bdf8be2330f47f9b5b233dd3fd04acbd9 (excl.)
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to f5096e18b6b7fbd1c2a1942e275a51bcfdfb2ad1 (excl.)
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to 59e8b7652f6cbfb62d377ead0ad553c1b4e39a7a (excl.)
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to 85d5fb80fe4f0cc836b6df83f26de204fe102ff7 (excl.)
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to a33975ff2b6ea47b8f29956403374b1cdd057539 (excl.)
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to b83ecf80e28afb7b6595ba79932e77ca68a5a83d (excl.)
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to eec89c5f8e1adc1de4824042ef75f62aed804153 (excl.)
  • affected from 00e907127e6f86d0f9b122d9b4347a8aa09a8b61 to 47694fbc9d24ab6bf210f91e8efe06a10a478064 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.9 is affected
  • unaffected from 0 to 4.9 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.97 to 6.12.* (incl.)
  • unaffected from 6.18.40 to 6.18.* (incl.)
  • unaffected from 7.1.5 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References