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

  ksmbd: fix SID memory leak in set_posix_acl_entries_dacl() on overflow

  Commit 299f962c0b02 ("ksmbd: use check_add_overflow() to prevent u16
  DACL size overflow") added …
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  ksmbd: fix SID memory leak in set_posix_acl_entries_dacl() on overflow

  Commit 299f962c0b02 ("ksmbd: use check_add_overflow() to prevent u16
  DACL size overflow") added …
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-401
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 6.1.175, < 6.2'
  - 'linux_kernel >= 6.6.136, < 6.6.142'
  - 'linux_kernel >= 6.12.84, < 6.12.92'
  - 'linux_kernel >= 6.18.25, < 6.18.34'
  - 'linux_kernel >= 7.0.2, < 7.0.11'
  - linux_kernel = 7.1
patched:
  - linux_kernel 7.0.11
published: '2026-07-19'
updated: '2026-08-23'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-64139'
references:
  - url: 'https://git.kernel.org/stable/c/0e198f09cb2a554c04de0fea4e790f1250a943ca'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/519fb0a42ce5d7e46935577309fb282a5f2c6ea3'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9b0a8985b419a71ee1cc9c0cc6a9e1bb7815a2c5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9d378e17c864da08c3a4df41dae92cfa6468b00a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/af92ee994cc7f7e83a41c2025f32257a2f82a7ef'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/eced48cb08f07393a5ea770fdd1026452883c3ad'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.00173
epssPercentile: 0.05909
ingestedAt: '2026-08-23T13:48:05.337Z'
---

## Overview

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

ksmbd: fix SID memory leak in set_posix_acl_entries_dacl() on overflow

Commit 299f962c0b02 ("ksmbd: use check_add_overflow() to prevent u16
DACL size overflow") added check_add_overflow() guards that break out
of the ACE-building loops in set_posix_acl_entries_dacl() when the
accumulated DACL size would wrap past 65535.

However, each iteration allocates a struct smb_sid via kmalloc_obj()
at the top of the loop and relies on the kfree(sid) call at the end
of the loop body (the 'pass_same_sid' label in the first loop, and
the explicit kfree at the tail of the second loop) to release it.
The newly introduced 'break' statements bypass those kfree() calls,
leaking the sid buffer every time an overflow is detected.

A malicious or malformed file with enough POSIX ACL entries to trip
the overflow check will leak one or more struct smb_sid allocations
on every request that touches the file's DACL, providing a trivial
kernel memory exhaustion vector.

Free sid before breaking out of the loops to plug the leak.

## Affected

- `linux_kernel >= 6.1.175, < 6.2`
- `linux_kernel >= 6.6.136, < 6.6.142`
- `linux_kernel >= 6.12.84, < 6.12.92`
- `linux_kernel >= 6.18.25, < 6.18.34`
- `linux_kernel >= 7.0.2, < 7.0.11`
- `linux_kernel = 7.1`

## Remediation

Upgrade past the affected range:

- `linux_kernel 7.0.11`
