Cloudanix VulnDB

CVE-2025-39819

Medium · 5.5

CVSS

5.5

EPSS

0.1%

Published

Sep 16, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A coding mistake in Linux network file sharing could allow memory to leak gradually, eventually affecting system stability.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Inconsistent reference count update in smb2_compound_op on allocation failure of vars leads to missing cleanup of cfile reference and resulting resource leak.

Why it matters to the business

Over time, repeated triggering of the error path under memory pressure can exhaust kernel resources on systems performing SMB operations, degrading stability and availability of file services.

How an attack unfolds

A local attacker triggers smb2_compound_op under conditions that cause vars allocation to fail with -ENOMEM; because the error path skips the reference drop, the cfile reference is leaked. Existing callers do not compensate for the missing decrement.

How to fix it

Update the Linux kernel to a version containing commit 3fc11ff13fbc2749871d6ac2141685cf54699997 or later; for affected distributions apply the corresponding package update that includes this fix.

How to confirm the fix worked

Verify the running kernel contains commit 3fc11ff13fbc2749871d6ac2141685cf54699997; confirm smb2_compound_op always reaches the out label for cleanup on allocation failure.

Typical attack path

  1. Obtain local access on a Linux system using the vulnerable kernel
  2. Initiate SMB compound operations while inducing memory pressure to force -ENOMEM on vars allocation
  3. Repeat to accumulate leaked references and exhaust resources

How to detect it

Inspect kernel logs and SMB trace points for repeated -ENOMEM returns from smb2_compound_op without corresponding reference decrements; correlate with increasing slab or file structure usage unrelated to workload growth.

What your security team should do

  • Apply the kernel update containing the referenced commit as soon as possible
  • Monitor systems for unexpected SMB-related resource usage until patches are deployed
  • Review local SMB workloads for exposure to low-memory conditions

The record

In the Linux kernel, the following vulnerability has been resolved: fs/smb: Fix inconsistent refcnt update A possible inconsistent update of refcount was identified in `smb2_compound_op`. Such inconsistent update could lead to possible resource leaks. Why it is a possible bug: 1. In the comment section of the function, it clearly states that the reference to `cfile` should be dropped after calling this function. 2. Every control flow path would check and drop the reference to `cfile`, except the patched one. 3. Existing callers would not handle refcount update of `cfile` if -ENOMEM is returned. To fix the bug, an extra goto label "out" is added, to make sure that the cleanup logic would always be respected. As the problem is caused by the allocation failure of `vars`, the cleanup logic between label "finished" and "out" can be safely ignored. According to the definition of function `is_replayable_error`, the error code of "-ENOMEM" is not recoverable. Therefore, the replay logic also gets ignored.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux 0 No fix
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Debian:14 linux 0 6.16.5-1
Linux Kernel 0 6.1.150
Linux Kernel 5.8.0 6.1.150
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.81.3
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.81.3
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_18 0 1-150600.1.3.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_18 0 1-150600.13.3.3
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.81.3
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.81.3
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.81.3.150600.12.36.3
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.81.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.81.3
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.81.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.81.3
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.81.2
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.81.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.81.3
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.58.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.58.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.58.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.81.3
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.61.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.61.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.61.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.61.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.81.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.81.3
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.58.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.81.3
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.81.3
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.81.3.150600.12.36.3
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.81.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.81.3
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.81.3
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.81.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.61.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.61.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.81.2
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.58.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.61.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.81.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.58.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.61.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.81.3
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.8.1.160000.2.5
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.8.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.8.1

Related vulnerabilities