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

  bpf: Take mmap_lock in zap_pages()

  zap_vma_range() requires the owning mm's mmap_lock to be held.

  Taking mmap_read_lock under arena->lock would AB-BA against
  arena_vm…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  bpf: Take mmap_lock in zap_pages()

  zap_vma_range() requires the owning mm's mmap_lock to be held.

  Taking mmap_read_lock under arena->lock would AB-BA against
  arena_vm…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-833
vendor: Red Hat
product: Red Hat Enterprise Linux 9
affected:
  - enterprise_linux 10
  - enterprise_linux 9
published: '2026-08-15'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T19:17:41.137'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-74354'
references:
  - url: 'https://git.kernel.org/stable/c/36b1d997866f6083d33934983aa2ce0a184ed642'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/80b89d0226a05e8b67969de99c31b51fcd54f76a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74354.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-74354'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2516793'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-74354'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-74354'
  - url: >-
      https://lore.kernel.org/linux-cve-announce/2026081500-CVE-2026-74354-67c4@gregkh/T
tags:
  - nvd
  - csaf
  - vex
  - red-hat
  - cve.org
  - score-dispute
epss: 0.00165
epssPercentile: 0.05677
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T18:54:18.946852Z'
scores:
  nvd: 7.8
  vendor: 5.5
  cna: 7.8
ingestedAt: '2026-10-16T19:46:24.375Z'
---

## Overview

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

bpf: Take mmap_lock in zap_pages()

zap_vma_range() requires the owning mm's mmap_lock to be held.

Taking mmap_read_lock under arena->lock would AB-BA against
arena_vm_close() and arena_map_mmap(), both of which run with
mmap_write_lock held and then acquire arena->lock. Instead drop
arena->lock, mmget_not_zero() the vma's mm, take mmap_read_lock, and
re-resolve the vma via find_vma() since it may have been unmapped or
replaced while waiting.

Track processed vmls with a per-call generation in vml->zap_gen and
serialize zap_pages() callers with a new arena->zap_mutex so
concurrent callers on different uaddr ranges do not mark each other's
vmls processed before the zap is done.

## Remediation

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

## Vendor advisories

- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9 · no fix planned: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9 · updated 2026-10-16 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74354.json)
