Cloudanix VulnDB

CVE-2026-63801

High · 8.8

CVSS

8.8

EPSS

0.5%

Published

Jul 19, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a rarely used Linux networking feature can let an attacker crash or potentially take over affected systems if that feature is enabled.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Full Compromise
Component
OS kernel
Class
Use After Free
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

This is a Linux kernel use-after-free in the TIPC encrypted receive path. When TIPC AEAD decryption is completed asynchronously, the decrypt callback can run after the associated network namespace has been destroyed and its per-namespace TIPC crypto structures have been freed. The callback then dereferences freed kernel memory, including TIPC crypto statistics, namespace pointers, AEAD state, and node-table data. Depending on kernel configuration, allocator state, and exploitability conditions, this can result in kernel memory disclosure, corruption, privilege escalation, or denial of service through a kernel crash.

Why it matters to the business

Systems that enable TIPC, especially encrypted TIPC over UDP bearers, may be exposed to a high-impact kernel memory corruption flaw. A successful attack could crash affected Linux hosts or potentially allow deeper compromise of the operating system. The issue is not currently listed in CISA KEV, has no reported mature public exploit, and has a low EPSS score, but the CVSS impact is high because exploitation affects the kernel and can compromise confidentiality, integrity, and availability. Organizations using containers, network namespaces, or workloads that grant namespace or network-administration capabilities should treat exposure as more urgent.

How an attack unfolds

An attacker needs conditions where TIPC is enabled and encrypted TIPC traffic is processed through an asynchronous AEAD decrypt path. In the demonstrated scenario, crafted encrypted TIPC frames are sent to a UDP bearer while the relevant network namespace is being torn down. Because the decrypt path does not hold a reference to the network namespace before submitting the asynchronous crypto operation, namespace cleanup can free the per-namespace TIPC crypto object before the crypto completion handler runs. When the delayed completion callback executes, it reads fields through the stale TIPC crypto pointer. This can trigger a kernel use-after-free, typically seen as a KASAN splat or kernel oops, and may be exploitable for broader kernel memory corruption depending on timing and heap layout. The practical attack surface is limited to systems where TIPC is loaded/configured and where an attacker can either influence TIPC encrypted traffic and namespace lifecycle or operate with sufficient local privileges such as CAP_NET_ADMIN or equivalent container escape-adjacent capabilities.

How to fix it

Apply a vendor-supported Linux kernel update that includes the upstream fix for the TIPC decrypt path reference-counting bug in net/tipc/crypto.c. Because exact fixed package versions were not provided, track the relevant distribution kernel advisories and confirm the patch description includes language similar to "tipc: fix slab-use-after-free Read in tipc_aead_decrypt_done" or an equivalent TIPC AEAD decrypt namespace reference fix. If immediate patching is not possible, reduce exposure by disabling TIPC where it is not required, unloading or blacklisting the tipc module, removing unused TIPC bearers, blocking TIPC UDP bearer traffic at host and network firewalls, and restricting CAP_NET_ADMIN, unprivileged user namespaces, and container configurations that allow users to create or destroy network namespaces. These mitigations reduce reachable attack surface but should not be treated as substitutes for a kernel update.

How to confirm the fix worked

Confirm remediation by verifying the running kernel version and package changelog against the operating-system vendor advisory for this issue. Check whether TIPC is loaded or configured using module inventory and TIPC tooling, such as reviewing lsmod output for tipc, checking /sys/module/tipc, and inspecting TIPC bearer configuration. Where feasible in a non-production test environment, validate that encrypted TIPC traffic and namespace teardown no longer produce KASAN, kernel oops, or panic messages referencing tipc_aead_decrypt_done. After patching, reboot into the fixed kernel and confirm no vulnerable kernel remains active through uname -r and package-manager queries.

Typical attack path

  1. Identify a Linux host or container environment where the TIPC kernel module/protocol is enabled.
  2. Determine whether TIPC bearers, especially UDP bearers with cluster-key encryption, are configured and reachable.
  3. Obtain the ability to send crafted TIPC encrypted frames to the bearer or operate from a context that can interact with TIPC networking.
  4. Create timing pressure by causing asynchronous AEAD decrypt operations while the relevant network namespace is destroyed or recycled.
  5. Trigger the delayed decrypt completion after TIPC crypto state has been freed.
  6. Abuse the resulting kernel use-after-free to cause a crash or attempt kernel memory corruption for privilege escalation.

How to detect it

Successful exploitation of kernel use-after-free vulnerabilities may leave few application-level indicators, so detection should focus on kernel telemetry, crash artifacts, module/configuration state, and suspicious namespace or TIPC activity. Review kernel logs from journalctl, dmesg, /var/log/kern.log, /var/log/messages, crash dumps, and kdump/vmcore records for KASAN reports, slab-use-after-free messages, kernel oopses, panics, or workqueue crashes involving TIPC crypto functions. Look for TIPC being unexpectedly loaded or configured, new or unusual TIPC bearers, and network traffic to configured TIPC UDP bearer ports from untrusted peers. On container hosts, correlate kernel faults with audit logs or EDR telemetry showing repeated unshare, clone, setns, ip netns, or namespace teardown activity by untrusted users or containers. If kernel crash dumps are available, inspect stack traces for tipc_aead_decrypt_done and freed TIPC crypto structures. Absence of these artifacts does not prove non-exploitation, because a successful privilege-escalation attempt may avoid a crash or clear logs after gaining control.

  • BUG: KASAN: slab-use-after-free in tipc_aead_decrypt_done
  • slab-use-after-free in tipc_aead_decrypt_done
  • tipc_aead_decrypt_done
  • tipc_crypto_rcv_complete
  • tipc_crypto_stop
  • tipc_exit_net
  • cleanup_net
  • Workqueue: events_unbound
  • crypto_aead_decrypt
  • net/tipc/crypto.c
  • net/tipc/core.c
  • /sys/module/tipc
  • /proc/net/tipc
  • tipc bearer
  • tipc node
  • tipc link
  • UDP/6118
  • unshare(CLONE_NEWNET)
  • CLONE_NEWNET
  • CAP_NET_ADMIN
  • kworker
  • KASAN: use-after-free
  • kernel BUG at net/tipc/crypto.c
  • Oops:
  • Kernel panic

What your security team should do

  • Inventory Linux systems for TIPC usage and prioritize hosts where the tipc module is loaded, TIPC bearers are configured, or container workloads have CAP_NET_ADMIN or network namespace creation privileges.
  • Patch affected Linux kernels as soon as vendor-fixed packages are available, prioritizing externally reachable, multi-tenant, container-hosting, and high-availability systems.
  • Disable or blacklist TIPC on systems that do not explicitly require it.
  • Restrict unprivileged user namespaces and remove unnecessary CAP_NET_ADMIN privileges from containers and services.
  • Block or tightly restrict TIPC bearer traffic, including UDP-based TIPC bearers, to trusted cluster peers only.
  • Monitor kernel logs for crashes, KASAN reports, workqueue crashes, or oops traces involving tipc_aead_decrypt_done, tipc_crypto_rcv_complete, tipc_exit_net, or cleanup_net.
  • Review container runtime and orchestration policies for workloads capable of repeatedly creating and destroying network namespaces.
  • Because public exploit maturity is currently listed as none and EPSS is low, balance urgency with exposure: patch all affected systems, but escalate immediately where TIPC is enabled or reachable.

The record

In the Linux kernel, the following vulnerability has been resolved: tipc: fix slab-use-after-free Read in tipc_aead_decrypt_done tipc_aead_decrypt() goes straight from tipc_bearer_hold(b) to crypto_aead_decrypt(req) without taking a reference on the netns, unlike the encrypt path. When crypto_aead_decrypt() is offloaded asynchronously (e.g. the SIMD aead wrapper queuing to cryptd), the cryptd worker runs tipc_aead_decrypt_done() later. If the bearer's netns is torn down in the meantime, cleanup_net() -> tipc_exit_net() -> tipc_crypto_stop() frees the per-netns tipc_crypto, and the completion then reads it: tipc_aead_decrypt_done() dereferences aead->crypto->stats and aead->crypto->net, and tipc_crypto_rcv_complete() dereferences aead->crypto->aead[] and the node table -- reading freed memory. Decoded KASAN splat (v7.1-rc7, CONFIG_KASAN_INLINE + TIPC + TIPC_CRYPTO): BUG: KASAN: slab-use-after-free in tipc_aead_decrypt_done (net/tipc/crypto.c:999) Read of size 8 at addr ffff8881056258a8 by task kworker/u16:2/51 Workqueue: events_unbound Call Trace: tipc_aead_decrypt_done (net/tipc/crypto.c:999) process_one_work (kernel/workqueue.c:3314) worker_thread (kernel/workqueue.c:3397 kernel/workqueue.c:3478) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245) Allocated by task 169: __kasan_kmalloc (mm/kasan/common.c:398 mm/kasan/common.c:415) tipc_crypto_start (net/tipc/crypto.c:1502) tipc_init_net (net/tipc/core.c:72) ops_init (net/core/net_namespace.c:137) setup_net (net/core/net_namespace.c:446) copy_net_ns (net/core/net_namespace.c:579) create_new_namespaces (kernel/nsproxy.c:132) __x64_sys_unshare (kernel/fork.c:3316) do_syscall_64 (arch/x86/entry/syscall_64.c:63) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) Freed by task 8: kfree (mm/slub.c:6566) tipc_exit_net (net/tipc/core.c:119) cleanup_net (net/core/net_namespace.c:704) process_one_work (kernel/workqueue.c:3314) kthread (kernel/kthread.c:436) This is the same class of bug that commit e279024617134 ("net/tipc: fix slab-use-after-free Read in tipc_aead_encrypt_done") fixed for the encrypt side. The encrypt path takes maybe_get_net(aead->crypto->net) before crypto_aead_encrypt() and drops it with put_net() on the synchronous return paths and in tipc_aead_encrypt_done(); the -EINPROGRESS/-EBUSY return keeps the reference for the async callback to release. The decrypt path was left without the equivalent guard. Mirror the encrypt-side fix on the decrypt path: take a net reference before crypto_aead_decrypt() (failing with -ENODEV and the matching bearer put if it cannot be acquired), keep it across the -EINPROGRESS/-EBUSY async return, and drop it with put_net() on the synchronous success/error return and at the end of tipc_aead_decrypt_done(). Reproduced under KASAN on v7.1-rc7: a UDP bearer with a cluster key is flooded with crafted encrypted frames from an unknown peer (driving the cluster-key decrypt path) while the bearer's netns is repeatedly torn down. The completion must run asynchronously to outlive tipc_crypto_stop(); on x86 the stock aesni gcm(aes) now decrypts synchronously, so the async path was exercised via cryptd offload. The unguarded aead->crypto dereference in tipc_aead_decrypt_done() is the unpatched upstream path; tipc_aead_decrypt() still lacks maybe_get_net(aead->crypto->net), so the completion can outlive the free on any config where crypto_aead_decrypt() goes async. Found by 0sec automated security-research tooling (https://0sec.ai).

Affected packages

Ecosystem Package Introduced Fixed