Linux Kernel up to 7.1-rc1 create_card reference count

CVSS Meta Temp Score
CVSS is a standardized scoring system to determine possibilities of attacks. The Temp Score considers temporal factors like disclosure, exploit and countermeasures. The unique Meta Score calculates the average score of different sources to provide a normalized scoring system.
Current Exploit Price (≈)
Our analysts are monitoring exploit markets and are in contact with vulnerability brokers. The range indicates the observed or calculated exploit price to be seen on exploit markets. A good indicator to understand the monetary effort required for and the popularity of an attack.
CTI Interest Score
Our Cyber Threat Intelligence team is monitoring different web sites, mailing lists, exploit markets and social media networks. The CTI Interest Score identifies the interest of attackers and the security community for this specific vulnerability in real-time. A high score indicates an elevated risk to be targeted for this vulnerability.
5.5$0-$5k0.00

Summaryinfo

A vulnerability, which was classified as critical, was found in Linux Kernel up to 6.6.139/6.12.85/6.18.26/7.0.3/7.1-rc1. This impacts the function create_card. Executing a manipulation can lead to reference count. This vulnerability appears as CVE-2026-46048. There is no available exploit. You should upgrade the affected component.

Detailsinfo

A vulnerability was found in Linux Kernel up to 6.6.139/6.12.85/6.18.26/7.0.3/7.1-rc1. It has been declared as critical. This vulnerability affects the function create_card. The manipulation with an unknown input leads to a reference count vulnerability. The CWE definition for the vulnerability is CWE-911. The product uses a reference count to manage a resource, but it does not update or incorrectly updates the reference count. As an impact it is known to affect availability. CVE summarizes:

In the Linux kernel, the following vulnerability has been resolved: ALSA: caiaq: fix usb_dev refcount leak on probe failure create_card() takes a reference on the USB device with usb_get_dev() and stores the matching usb_put_dev() in card_free(), which is installed as the snd_card's ->private_free destructor. However, ->private_free is only assigned near the end of init_card(), after several failure points (usb_set_interface(), EP type checks, usb_submit_urb(), the EP1_CMD_GET_DEVICE_INFO exchange, and its timeout). When any of those fail, init_card() returns an error to snd_probe(), which calls snd_card_free(card). Because ->private_free is still NULL, card_free() never runs, the usb_get_dev() reference is not dropped, and the struct usb_device leaks along with its descriptor allocations and device_private. syzbot reproduces this with a malformed UAC3 device whose only valid altsetting is 0; init_card()'s usb_set_interface(usb_dev, 0, 1) call fails with -EIO and triggers the leak. Move the ->private_free assignment into create_card(), immediately after usb_get_dev(), so that every error path reaching snd_card_free() balances the reference. card_free()'s callees (snd_usb_caiaq_input_free, free_urbs, kfree) already tolerate the partially-initialized state because the chip private area is zero-initialized by snd_card_new().

The advisory is available at git.kernel.org. This vulnerability was named CVE-2026-46048 since 05/13/2026. Technical details are known, but there is no available exploit.

Upgrading to version 6.6.140, 6.12.86, 6.18.27, 7.0.4, 7.1-rc1 or 7.1-rc2 eliminates this vulnerability. Applying the patch 50c6a1f05973f56d23280c9d7645a7a5734e0907/da3b8fd6a202d94fef11a443abc9171c52426a1c/6153878c5255bb69b7d0868105ca078ef13cbcf8/21ca595aafa40d3ac70eab1f4cb62cc00ca21657/7a5f1cd22d47f8ca4b760b6334378ae42c1bd24b is able to eliminate this problem. The bugfix is ready for download at git.kernel.org. The best possible mitigation is suggested to be upgrading to the latest version.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Productinfo

Type

Vendor

Name

Version

License

Website

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔒
VulDB Reliability: 🔍

CVSSv3info

VulDB Meta Base Score: 5.6
VulDB Meta Temp Score: 5.5

VulDB Base Score: 5.7
VulDB Temp Score: 5.5
VulDB Vector: 🔒
VulDB Reliability: 🔍

NVD Base Score: 5.5
NVD Vector: 🔒

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplexityAuthenticationConfidentialityIntegrityAvailability
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock

VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍

Exploitinginfo

Class: Reference count
CWE: CWE-911 / CWE-664
CAPEC: 🔒
ATT&CK: 🔒

Physical: Partially
Local: Yes
Remote: Partially

Availability: 🔒
Status: Not defined

EPSS Score: 🔒
EPSS Percentile: 🔒

Price Prediction: 🔍
Current Price Estimation: 🔒

0-DayUnlockUnlockUnlockUnlock
TodayUnlockUnlockUnlockUnlock

Threat Intelligenceinfo

Interest: 🔍
Active Actors: 🔍
Active APT Groups: 🔍

Countermeasuresinfo

Recommended: Upgrade
Status: 🔍

0-Day Time: 🔒

Upgrade: Kernel 6.6.140/6.12.86/6.18.27/7.0.4/7.1-rc1/7.1-rc2
Patch: 50c6a1f05973f56d23280c9d7645a7a5734e0907/da3b8fd6a202d94fef11a443abc9171c52426a1c/6153878c5255bb69b7d0868105ca078ef13cbcf8/21ca595aafa40d3ac70eab1f4cb62cc00ca21657/7a5f1cd22d47f8ca4b760b6334378ae42c1bd24b

Timelineinfo

05/13/2026 CVE reserved
05/27/2026 +14 days Advisory disclosed
05/27/2026 +0 days VulDB entry created
06/17/2026 +21 days VulDB entry last update

Sourcesinfo

Vendor: kernel.org

Advisory: git.kernel.org
Status: Confirmed

CVE: CVE-2026-46048 (🔒)
GCVE (CVE): GCVE-0-2026-46048
GCVE (VulDB): GCVE-100-366298

Entryinfo

Created: 05/27/2026 17:32
Updated: 06/17/2026 02:29
Changes: 05/27/2026 17:32 (58), 06/17/2026 02:29 (10)
Complete: 🔍
Cache ID: 216::103

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Discussion

No comments yet. Languages: en.

Please log in to comment.

Do you want to use VulDB in your project?

Use the official API to access entries easily!