---
id: CVE-2026-98831
title: 'of/overlay: don''t leak fragment references when changeset init fails'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  of/overlay: don't leak fragment references when changeset init fails

  init_overlay_changeset() stores the number of initialized fragments
  in ovcs->count only on full su…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 <
    894573e2fdaeb1b15030b7eebc22615edf28a6cd
  - >-
    Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 <
    7a46f1917b320cc8762183b802301da02a191b6a
  - >-
    Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 <
    3a23fb158ba517b77a2e5258263bdfdaa480f758
  - >-
    Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 <
    1d62f0f2bc7edb12ed09f71203df0e47fa4efca4
  - Linux 4.15
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:49:32.909Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98831'
references:
  - url: 'https://git.kernel.org/stable/c/894573e2fdaeb1b15030b7eebc22615edf28a6cd'
  - url: 'https://git.kernel.org/stable/c/7a46f1917b320cc8762183b802301da02a191b6a'
  - url: 'https://git.kernel.org/stable/c/3a23fb158ba517b77a2e5258263bdfdaa480f758'
  - url: 'https://git.kernel.org/stable/c/1d62f0f2bc7edb12ed09f71203df0e47fa4efca4'
tags:
  - cve.org
ingestedAt: '2026-10-18T16:47:32.471Z'
---

## Overview

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

of/overlay: don't leak fragment references when changeset init fails

init_overlay_changeset() stores the number of initialized fragments
in ovcs->count only on full success. When find_target() or the
__symbols__ lookup fails partway through, the target and overlay
references taken for the fragments initialized so far are never
dropped: free_overlay_changeset() bounds its cleanup loop by
ovcs->count, which is still 0.

Store the running count on the error path so free_overlay_changeset()
puts whatever was set up. The store is guarded by ovcs->fragments
because on the allocation-failure path cnt still holds the counting
pass total while there is no fragments array; everywhere else cnt
only counts fully-initialized fragments.

## Affected

- `Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 < 894573e2fdaeb1b15030b7eebc22615edf28a6cd`
- `Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 < 7a46f1917b320cc8762183b802301da02a191b6a`
- `Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 < 3a23fb158ba517b77a2e5258263bdfdaa480f758`
- `Linux >= 61b4de4e0b384f4a22c55c3bada604da49cec4e1 < 1d62f0f2bc7edb12ed09f71203df0e47fa4efca4`
- `Linux 4.15`

## Remediation

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