In the Linux kernel, the following vulnerability has been resolved:
ALSA: usb-audio: Fix out-of-bounds read in sndusbgetaudioformatuac3()
In sndusbgetaudioformatuac3(), the length value returned from sndusbctl_msg() is used directly for memory allocation without validation. This length is controlled by the USB device.
The allocated buffer is cast to a uac3clusterheader_descriptor and its fields are accessed without verifying that the buffer is large enough. If the device returns a smaller than expected length, this leads to an out-of-bounds read.
Add a length check to ensure the buffer is large enough for uac3clusterheader_descriptor.
[
{
"signature_type": "Function",
"digest": {
"function_hash": "31730665804353816998513253596274702346",
"length": 4533.0
},
"deprecated": false,
"id": "CVE-2025-38249-1668c2f7",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2dc1c3edf67abd30c757f8054a5da61927cdda21",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-1a7e50b6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2dc1c3edf67abd30c757f8054a5da61927cdda21",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-1ec2583c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c3fb926abe90d86f5e3055e0035f04d9892a118b",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-25cd694f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24ff7d465c4284529bbfa207757bffb6f44b6403",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-5eaf13ec",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fb4e2a6e8f28a3c0ad382e363aeb9cd822007b8a",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-8761c86a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0ee87c2814deb5e42921281116ac3abcb326880b",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-951175cc",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eb211788e1370af52a245d4d7da35c374c7b401",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "40995372375185354709924313290362360187",
"length": 4559.0
},
"deprecated": false,
"id": "CVE-2025-38249-9843f68a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fb4e2a6e8f28a3c0ad382e363aeb9cd822007b8a",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "31730665804353816998513253596274702346",
"length": 4533.0
},
"deprecated": false,
"id": "CVE-2025-38249-a7b15ef6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@74fcb3852a2f579151ce80b9ed96cd916ba0d5d8",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "31730665804353816998513253596274702346",
"length": 4533.0
},
"deprecated": false,
"id": "CVE-2025-38249-b0c02ee7",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24ff7d465c4284529bbfa207757bffb6f44b6403",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-b810f4eb",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@11e740dc1a2c8590eb7074b5c4ab921bb6224c36",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "31730665804353816998513253596274702346",
"length": 4533.0
},
"deprecated": false,
"id": "CVE-2025-38249-b9d7da86",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eb211788e1370af52a245d4d7da35c374c7b401",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "40995372375185354709924313290362360187",
"length": 4559.0
},
"deprecated": false,
"id": "CVE-2025-38249-d9c44de3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0ee87c2814deb5e42921281116ac3abcb326880b",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"51951503075025226679855451308370659261",
"322935814620359597143623188370794788116",
"335191877476426226689691855940696752964",
"260009219810201581178565665453204677871"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2025-38249-df0bbb11",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@74fcb3852a2f579151ce80b9ed96cd916ba0d5d8",
"target": {
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "40995372375185354709924313290362360187",
"length": 4559.0
},
"deprecated": false,
"id": "CVE-2025-38249-f4bd4bd9",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@11e740dc1a2c8590eb7074b5c4ab921bb6224c36",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "31730665804353816998513253596274702346",
"length": 4533.0
},
"deprecated": false,
"id": "CVE-2025-38249-fc6509a9",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c3fb926abe90d86f5e3055e0035f04d9892a118b",
"target": {
"function": "snd_usb_get_audioformat_uac3",
"file": "sound/usb/stream.c"
},
"signature_version": "v1"
}
]