---
id: CVE-2026-98049
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  bpf: zero extend the result of an arena 32-bit cmpxchg

  bpf_convert_ctx_accesses() rewrites an atomic on an arena pointer from
  BPF_STX | BPF_ATOMIC to BPF_STX | BPF_PRO…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  bpf: zero extend the result of an arena 32-bit cmpxchg

  bpf_convert_ctx_accesses() rewrites an atomic on an arena pointer from
  BPF_STX | BPF_ATOMIC to BPF_STX | BPF_PRO…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= d503a04f8bc0c75dc9db9452d8cc79d748afb752 <
    1c1b476d43a8b6c9bc04600369dd8cc39950d98e
  - >-
    Linux >= d503a04f8bc0c75dc9db9452d8cc79d748afb752 <
    4814ed6406f3493bd554ad046da5f7fc04833571
  - Linux 6.10
published: '2026-09-25'
updated: '2026-09-25'
sourceUpdated: '2026-09-25T11:17:33.770'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-98049'
references:
  - url: 'https://git.kernel.org/stable/c/1c1b476d43a8b6c9bc04600369dd8cc39950d98e'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/4814ed6406f3493bd554ad046da5f7fc04833571'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ingestedAt: '2026-09-25T11:06:38.848Z'
---

## Overview

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

bpf: zero extend the result of an arena 32-bit cmpxchg

bpf_convert_ctx_accesses() rewrites an atomic on an arena pointer from
BPF_STX | BPF_ATOMIC to BPF_STX | BPF_PROBE_ATOMIC, and it runs before
bpf_opt_subreg_zext_lo32_rnd_hi32().

That pass emits an explicit zero extension for a 32-bit cmpxchg even
when bpf_jit_needs_zext() is false. This is done because on some
architectures 32-bit cmpxchg requires explicit zero extension for the
dst register. E.g. on x86-64 'lock cmpxchg' does not change the %eax
if comparison is successful, while BPF semantics declare that each
operation on a 32-bit register zero extends it's upper half.

is_cmpxchg_insn() matches BPF_MODE == BPF_ATOMIC only, so an arena
cmpxchg misses said zero extension adjustment. This patch adjusts
is_cmpxchg_insn() to match BPF_PROBE_ATOMIC alongside BPF_ATOMIC.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
