CVE & CISA-KEV Catalog

CVE-2025-40209

UNSCORED

Description

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix memory leak of qgroup_list in btrfs_add_qgroup_relation When btrfs_add_qgroup_relation() is called with invalid qgroup levels (src >= dst), the function returns -EINVAL directly without freeing the preallocated qgroup_list structure passed by the caller. This causes a memory leak because the caller unconditionally sets the pointer to NULL after the call, preventing any cleanup. The issue occurs because the level validation check happens before the mutex is acquired and before any error handling path that would free the prealloc pointer. On this early return, the cleanup code at the 'out' label (which includes kfree(prealloc)) is never reached. In btrfs_ioctl_qgroup_assign(), the code pattern is: prealloc = kzalloc(sizeof(*prealloc), GFP_KERNEL); ret = btrfs_add_qgroup_relation(trans, sa->src, sa->dst, prealloc); prealloc = NULL; // Always set to NULL regardless of return value ... kfree(prealloc); // This becomes kfree(NULL), does nothing When the level check fails, 'prealloc' is never freed by either the callee or the caller, resulting in a 64-byte memory leak per failed operation. This can be triggered repeatedly by an unprivileged user with access to a writable btrfs mount, potentially exhausting kernel memory. Fix this by freeing prealloc before the early return, ensuring prealloc is always freed on all error paths.

How to fix

Remediation Available
linuxDebian
Fixed in:6.12.63-1CVE-2025-40209
Fixed in:6.17.8-1CVE-2025-40209
linuxUbuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-awsUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-azureUbuntu
Fixed in:6.17.0-1008.8USN-8029-3
linux-gcpUbuntu
Fixed in:6.17.0-1007.7USN-8030-1
linux-image-6.17.0-1006-realtimeUbuntu
Fixed in:6.17.0-1006.7USN-8029-1
linux-image-6.17.0-1007-awsUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-6.17.0-1007-aws-64kUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-6.17.0-1007-gcpUbuntu
Fixed in:6.17.0-1007.7USN-8030-1
linux-image-6.17.0-1007-gcp-64kUbuntu
Fixed in:6.17.0-1007.7USN-8030-1
linux-image-6.17.0-1007-oracleUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-6.17.0-1007-oracle-64kUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-6.17.0-1008-azureUbuntu
Fixed in:6.17.0-1008.8USN-8029-3
linux-image-6.17.0-1008-raspiUbuntu
Fixed in:6.17.0-1008.8USN-8029-1
linux-image-6.17.0-1011-oemUbuntu
Fixed in:6.17.0-1011.11USN-8048-1
linux-image-6.17.0-14-genericUbuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-image-6.17.0-14-generic-64kUbuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-image-awsUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-aws-6.17Ubuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-aws-64kUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-aws-64k-6.17Ubuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-azureUbuntu
Fixed in:6.17.0-1008.8USN-8029-3
linux-image-azure-6.17Ubuntu
Fixed in:6.17.0-1008.8USN-8029-3
linux-image-gcpUbuntu
Fixed in:6.17.0-1007.7USN-8030-1
linux-image-gcp-6.17Ubuntu
Fixed in:6.17.0-1007.7USN-8030-1
linux-image-gcp-64kUbuntu
Fixed in:6.17.0-1007.7USN-8030-1
linux-image-gcp-64k-6.17Ubuntu
Fixed in:6.17.0-1007.7USN-8030-1
linux-image-genericUbuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-image-generic-6.17Ubuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-image-generic-64kUbuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-image-generic-64k-6.17Ubuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-image-oem-6.17Ubuntu
Fixed in:6.17.0-1011.11USN-8048-1
linux-image-oracleUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-oracle-6.17Ubuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-oracle-64kUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-oracle-64k-6.17Ubuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-image-raspiUbuntu
Fixed in:6.17.0-1008.8USN-8029-1
linux-image-raspi-6.17Ubuntu
Fixed in:6.17.0-1008.8USN-8029-1
linux-image-realtimeUbuntu
Fixed in:6.17.0-1006.7USN-8029-1
linux-image-realtime-6.17Ubuntu
Fixed in:6.17.0-1006.7USN-8029-1
linux-image-virtualUbuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-image-virtual-6.17Ubuntu
Fixed in:6.17.0-14.14USN-8029-1
linux-oem-6.17Ubuntu
Fixed in:6.17.0-1011.11USN-8048-1
linux-oracleUbuntu
Fixed in:6.17.0-1007.7USN-8029-2
linux-raspiUbuntu
Fixed in:6.17.0-1008.8USN-8029-1
linux-realtimeUbuntu
Fixed in:6.17.0-1006.7USN-8029-1

Remediation is compiled from vendor and distribution security advisories. Always confirm against the linked source for your exact version and platform.

CVSS v3.1 Vector

No CVSS vector data available.

Exploit Intelligence

0.16%probability of exploitation in 30 days
6thpercentile

Low risk: more likely to be exploited than 6% of all known CVEs.

References

Embed a live status badge for CVE-2025-40209
CVE-2025-40209 severity badge

Markdown

[![CVE-2025-40209](https://tridentstack.com/cve/badge/CVE-2025-40209.svg)](https://tridentstack.com/cve/CVE-2025-40209)

HTML

<a href="https://tridentstack.com/cve/CVE-2025-40209"><img src="https://tridentstack.com/cve/badge/CVE-2025-40209.svg" alt="CVE-2025-40209"></a>

Find and fix vulnerabilities across your fleet

TridentStack Control continuously scans your Windows, macOS, and Linux fleet for known vulnerabilities, prioritizes them by severity and active exploitation, and patches them automatically.

Start free

This product uses NVD data but is not endorsed or certified by the NVD. EPSS scores courtesy of FIRST.org (https://www.first.org/epss). Source: CISA KEV Catalog. Data as of 2025-11-21.