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

  ufs: create the root dentry after loading cylinder metadata

  ufs_fill_super() installed sb->s_root before it loaded the cylinder
  group structures for a writable mount:
  …
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  ufs: create the root dentry after loading cylinder metadata

  ufs_fill_super() installed sb->s_root before it loaded the cylinder
  group structures for a writable mount:
  …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    a9804121d55aaa4319c1cac00b99794aa177dd6a
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    785e523b6c1931d802cab9f85912f3e6c7028af1
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    8173e051a8acbb4ae6547be0436727944119e0b5
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    55a4c98abb9694b067c6a031d11501f06b6b523c
  - Linux 2.6.12
published: '2026-09-25'
updated: '2026-09-25'
sourceUpdated: '2026-09-25T11:17:19.950'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-97927'
references:
  - url: 'https://git.kernel.org/stable/c/55a4c98abb9694b067c6a031d11501f06b6b523c'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/785e523b6c1931d802cab9f85912f3e6c7028af1'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/8173e051a8acbb4ae6547be0436727944119e0b5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a9804121d55aaa4319c1cac00b99794aa177dd6a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ingestedAt: '2026-09-25T11:06:38.887Z'
---

## Overview

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

ufs: create the root dentry after loading cylinder metadata

ufs_fill_super() installed sb->s_root before it loaded the cylinder
group structures for a writable mount:

	sb->s_root = d_make_root(inode);
	...
	if (!sb_rdonly(sb))
		if (!ufs_read_cylinder_structures(sb))
			goto failed;

When ufs_read_cylinder_structures() failed, the error path freed the
in-core superblock information and set sb->s_fs_info to NULL while
sb->s_root stayed installed. get_tree_bdev() then reached
deactivate_locked_super(), and because s_root was present,
generic_shutdown_super() called sync_filesystem() and the put_super
operation. Both dereference UFS_SB(sb), which is now NULL, so a mount
that fails only while reading the cylinder groups oopses during
teardown. A crafted image whose first cylinder group cannot be read
reaches this path.

Load the cylinder group metadata first and create the root dentry last,
so the superblock is published to the VFS only once it is fully set up.
ufs_setup_cstotal() and ufs_read_cylinder_structures() take only the
super_block and do not use the root inode, so the reordering is safe.

## Remediation

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