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

  ocfs2: validate fast symlink target during inode read

  ocfs2_validate_inode_block() already rejects several inconsistent
  self-contained dinodes before they are exposed …
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  ocfs2: validate fast symlink target during inode read

  ocfs2_validate_inode_block() already rejects several inconsistent
  self-contained dinodes before they are exposed …
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= ea022dfb3c2a4680483b00eb2fecc9fc4f6091d1 <
    d94bf50756d7f80bb728ad58246376649e1035b6
  - >-
    Linux >= ea022dfb3c2a4680483b00eb2fecc9fc4f6091d1 <
    f9e2cb692b77a679b1f4cc2b7b277fa908586533
  - >-
    Linux >= ea022dfb3c2a4680483b00eb2fecc9fc4f6091d1 <
    e234973f286ed2e8961a24561ec91594ec3e3ff8
  - Linux 3.5
published: '2026-08-15'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T11:17:45.427'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-74350'
references:
  - url: 'https://git.kernel.org/stable/c/d94bf50756d7f80bb728ad58246376649e1035b6'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e234973f286ed2e8961a24561ec91594ec3e3ff8'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/f9e2cb692b77a679b1f4cc2b7b277fa908586533'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
epss: 0.00553
epssPercentile: 0.44884
ingestedAt: '2026-10-15T11:00:41.678Z'
---

## Overview

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

ocfs2: validate fast symlink target during inode read

ocfs2_validate_inode_block() already rejects several inconsistent
self-contained dinodes before they are exposed to the rest of the
filesystem.  Fast symlinks need the same treatment.

A zero-cluster symlink is treated as a fast symlink and later read through
page_get_link() and ocfs2_fast_symlink_read_folio().  That path uses
strnlen() on the inline payload and then copies len + 1 bytes into the
folio.  If a corrupt dinode stores an i_size that does not fit the inline
area or omits the terminating NUL at i_size, that copy reads past the end
of the inode block buffer.

Reject zero-cluster symlink dinodes whose i_size exceeds the inline
fast-symlink capacity or whose inline payload is not NUL-terminated
exactly at i_size when the inode block is validated.  This keeps malformed
fast symlinks from reaching the read path.

Validation reproduced this kernel report:
KASAN use-after-free in ocfs2_fast_symlink_read_folio+0x12c/0x1f0
RIP: 0033:0x7f5c6d859aa7
Read of size 3905
Call trace:
  dump_stack_lvl+0x66/0xa0 (?:?)
  print_report+0xce/0x630 (?:?)
  ocfs2_fast_symlink_read_folio+0x12c/0x1f0 (fs/ocfs2/inode.c:?)
  srso_alias_return_thunk+0x5/0xfbef5 (?:?)
  __virt_addr_valid+0x19f/0x330 (?:?)
  kasan_report+0xe0/0x110 (?:?)
  kasan_check_range+0x105/0x1b0 (?:?)
  __asan_memcpy+0x23/0x60 (?:?)
  filemap_read_folio+0x27/0xe0 (?:?)
  filemap_read_folio+0x35/0xe0 (?:?)
  do_read_cache_folio+0x138/0x230 (?:?)
  __page_get_link+0x26/0x110 (?:?)
  page_get_link+0x2e/0x70 (?:?)
  vfs_readlink+0x15e/0x250 (?:?)
  touch_atime+0x4d/0x370 (?:?)
  do_readlinkat+0x186/0x200 (?:?)
  do_user_addr_fault+0x65a/0x890 (?:?)
  __x64_sys_readlink+0x46/0x60 (?:?)
  do_syscall_64+0x115/0x6a0 (arch/x86/entry/syscall_64.c:87)
  entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)

## Remediation

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