# CVE-2023-53107: veth: Fix use after free in XDP_REDIRECT

> A use-after-free vulnerability in the Linux kernel's veth driver allows attackers to cause denial of service or potentially execute code via crafted network packets.

- **Severity:** High 7.8 (`CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 2 May 2025
- **Updated:** 15 Oct 2026
- **Also known as:** BELL-CVE-2023-53107, DEBIAN-CVE-2023-53107, GHSA-wmmr-m98c-g94f, RHSA-2025:8133, RHSA-2025:8134, RHSA-2025:8399, UBUNTU-CVE-2023-53107

## What is CVE-2023-53107?

CVE-2023-53107 is a high-severity use after free vulnerability in Linux kernel, published on 2 May 2025. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

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

veth: Fix use after free in XDP_REDIRECT

Commit 718a18a0c8a6 ("veth: Rework veth_xdp_rcv_skb in order
to accept non-linear skb") introduced a bug where it tried to
use pskb_expand_head() if the headroom was less than
XDP_PACKET_HEADROOM.  This however uses kmalloc to expand the head,
which will later allow consume_skb() to free the skb while is it still
in use by AF_XDP.

Previously if the headroom was less than XDP_PACKET_HEADROOM we
continued on to allocate a new skb from pages so this restores that
behavior.

BUG: KASAN: use-after-free in __xsk_rcv+0x18d/0x2c0
Read of size 78 at addr ffff888976250154 by task napi/iconduit-g/148640

CPU: 5 PID: 148640 Comm: napi/iconduit-g Kdump: loaded Tainted: G           O       6.1.4-cloudflare-kasan-2023.1.2 #1
Hardware name: Quanta Computer Inc. QuantaPlex T41S-2U/S2S-MB, BIOS S2S_3B10.03 06/21/2018
Call Trace:
  <TASK>
  dump_stack_lvl+0x34/0x48
  print_report+0x170/0x473
  ? __xsk_rcv+0x18d/0x2c0
  kasan_report+0xad/0x130
  ? __xsk_rcv+0x18d/0x2c0
  kasan_check_range+0x149/0x1a0
  memcpy+0x20/0x60
  __xsk_rcv+0x18d/0x2c0
  __xsk_map_redirect+0x1f3/0x490
  ? veth_xdp_rcv_skb+0x89c/0x1ba0 [veth]
  xdp_do_redirect+0x5ca/0xd60
  veth_xdp_rcv_skb+0x935/0x1ba0 [veth]
  ? __netif_receive_skb_list_core+0x671/0x920
  ? veth_xdp+0x670/0x670 [veth]
  veth_xdp_rcv+0x304/0xa20 [veth]
  ? do_xdp_generic+0x150/0x150
  ? veth_xdp_rcv_one+0xde0/0xde0 [veth]
  ? _raw_spin_lock_bh+0xe0/0xe0
  ? newidle_balance+0x887/0xe30
  ? __perf_event_task_sched_in+0xdb/0x800
  veth_poll+0x139/0x571 [veth]
  ? veth_xdp_rcv+0xa20/0xa20 [veth]
  ? _raw_spin_unlock+0x39/0x70
  ? finish_task_switch.isra.0+0x17e/0x7d0
  ? __switch_to+0x5cf/0x1070
  ? __schedule+0x95b/0x2640
  ? io_schedule_timeout+0x160/0x160
  __napi_poll+0xa1/0x440
  napi_threaded_poll+0x3d1/0x460
  ? __napi_poll+0x440/0x440
  ? __kthread_parkme+0xc6/0x1f0
  ? __napi_poll+0x440/0x440
  kthread+0x2a2/0x340
  ? kthread_complete_and_exit+0x20/0x20
  ret_from_fork+0x22/0x30
  </TASK>

Freed by task 148640:
  kasan_save_stack+0x23/0x50
  kasan_set_track+0x21/0x30
  kasan_save_free_info+0x2a/0x40
  ____kasan_slab_free+0x169/0x1d0
  slab_free_freelist_hook+0xd2/0x190
  __kmem_cache_free+0x1a1/0x2f0
  skb_release_data+0x449/0x600
  consume_skb+0x9f/0x1c0
  veth_xdp_rcv_skb+0x89c/0x1ba0 [veth]
  veth_xdp_rcv+0x304/0xa20 [veth]
  veth_poll+0x139/0x571 [veth]
  __napi_poll+0xa1/0x440
  napi_threaded_poll+0x3d1/0x460
  kthread+0x2a2/0x340
  ret_from_fork+0x22/0x30

The buggy address belongs to the object at ffff888976250000
  which belongs to the cache kmalloc-2k of size 2048
The buggy address is located 340 bytes inside of
  2048-byte region [ffff888976250000, ffff888976250800)

The buggy address belongs to the physical page:
page:00000000ae18262a refcount:2 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x976250
head:00000000ae18262a order:3 compound_mapcount:0 compound_pincount:0
flags: 0x2ffff800010200(slab|head|node=0|zone=2|lastcpupid=0x1ffff)
raw: 002ffff800010200 0000000000000000 dead000000000122 ffff88810004cf00
raw: 0000000000000000 0000000080080008 00000002ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
  ffff888976250000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
  ffff888976250080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
> ffff888976250100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                                  ^
  ffff888976250180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
  ffff888976250200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb

Weakness: CWE-416 (Use After Free)

## Which versions are affected by CVE-2023-53107?

It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `kpatch-patch-5_14_0-284_104_1` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-4.el9_2 |
| `kpatch-patch-5_14_0-284_104_1-debuginfo` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-4.el9_2 |
| `kpatch-patch-5_14_0-284_104_1-debugsource` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-4.el9_2 |
| `kpatch-patch-5_14_0-284_117_1` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-1.el9_2 |
| `kpatch-patch-5_14_0-284_117_1-debuginfo` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-1.el9_2 |
| `kpatch-patch-5_14_0-284_117_1-debugsource` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-1.el9_2 |
| `kpatch-patch-5_14_0-284_52_1` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-12.el9_2 |
| `kpatch-patch-5_14_0-284_52_1-debuginfo` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-12.el9_2 |
| `kpatch-patch-5_14_0-284_52_1-debugsource` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-12.el9_2 |
| `kpatch-patch-5_14_0-284_79_1` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-8.el9_2 |
| `kpatch-patch-5_14_0-284_79_1-debuginfo` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-8.el9_2 |
| `kpatch-patch-5_14_0-284_79_1-debugsource` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-8.el9_2 |
| `kpatch-patch-5_14_0-284_92_1` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-6.el9_2 |
| `kpatch-patch-5_14_0-284_92_1-debuginfo` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-6.el9_2 |
| `kpatch-patch-5_14_0-284_92_1-debugsource` | Red Hat:rhel_e4s:9.2::baseos | All versions | 0:1-6.el9_2 |
| `bpftool-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:7.0.0-284.118.1.el9_2 |
| `kernel-64k-debug-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-64k-debug-devel` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-64k-debug-devel-matched` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-64k-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-64k-devel` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-64k-devel-matched` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debug-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debug-devel` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debug-devel-matched` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debuginfo-common-aarch64` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debuginfo-common-ppc64le` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debuginfo-common-s390x` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-debuginfo-common-x86_64` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-devel` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-devel-matched` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-doc` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-tools-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-zfcpdump-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-zfcpdump-devel` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `kernel-zfcpdump-devel-matched` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `perf` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `perf-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |
| `python3-perf-debuginfo` | Red Hat:rhel_eus:9.2::appstream | All versions | 0:5.14.0-284.118.1.el9_2 |

Products: Linux kernel.

## How do I fix CVE-2023-53107?

Apply the vendor's patch.

## Is CVE-2023-53107 being exploited?

There is no known exploitation of CVE-2023-53107 in the wild and no public exploit code.

## Other vulnerabilities in Linux kernel

- [CVE-2026-53266](https://insights.sbomify.com/CVE-2026-53266/): Linux Kernel Out-of-Bounds Write (high 8.8, exploited in the wild)
- [CVE-2013-6282](https://insights.sbomify.com/CVE-2013-6282/): Linux Kernel Improper Input Validation (high 8.8, exploited in the wild)
- [CVE-2022-0185](https://insights.sbomify.com/CVE-2022-0185/): Linux Kernel Heap-Based Buffer Overflow (high 8.4, exploited in the wild)
- [CVE-2013-2094](https://insights.sbomify.com/CVE-2013-2094/): Linux Kernel Privilege Escalation (high 8.4, exploited in the wild)
- [CVE-2026-53362](https://insights.sbomify.com/CVE-2026-53362/): Linux Kernel Unspecified (high 7.8, exploited in the wild)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2023-53107 and fix it if it is affected.

What it is: CVE-2023-53107 is a high-severity use after free vulnerability in Linux kernel, published on 2 May 2025. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2023-53107 in the wild and no public exploit code.

Affected product: Linux kernel. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2023-53107/ (Markdown: https://insights.sbomify.com/CVE-2023-53107/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2023-53107
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2023-53107
- OSV: https://osv.dev/vulnerability/CVE-2023-53107

---
From sbomify Insights: https://insights.sbomify.com/CVE-2023-53107/
Summaries are generated and may contain mistakes; the official description above is the record.
